Changelog
MeowKit release history and changes.
Upgrade
npx mewkit upgradeFresh install: npx mewkit init. See Releasing for the full release process. Section schema: each version uses only the relevant sections from Highlights, New Skills, New Agents, New Commands, CLI, Features, Improvements, Removals, Bug Fixes, Beta.
2.14.5 (2026-07-20) — High-Assurance PR Review
The mewkit CLI ships alongside this kit as 1.19.1 (see CLI below).
Highlights
A new evidence-gated PR-review path. mk:review-pr --assured runs a deterministic ReviewSession: an isolated, SHA-bound, detached review worktree (the user's checkout is provably untouched), one immutable hash-pinned diff, a diff-scoped impact map with targeted scout escalation, a scope-driven reviewer roster, session-observed coverage, and a mechanical verdict gate that cannot emit a PASS/Approve without complete, hook-corroborated coverage. GitHub writes happen only through --reply plus an immediate user confirmation bound to the reviewed revision.
New Commands
mewkit review prepare <pr-url | owner/repo#n | n> [--remote <name>]— provision an isolated SHA-bound worktree from a PR (fork-safe:pull/N/headfetched from the base-repo remote), capture one immutable hash-pinned diff + PR metadata/CI as untrusted DATA, and write a deterministic impact map + reviewer roster/briefs undertasks/reviews/<session>/.mewkit review read --session <id> --as <role> <path>— path-confined, evidence-recording read wrapper (assigned reviewer reads flow through it so coverage is observable).mewkit review coverage --session <id>— roster ∩ evidence gap gate; reportsevidenceLevel(session-observedvsattested) and exits non-zero on any gap.mewkit review compose --session <id>— the mechanical gate: verify the diff hash, re-run coverage, apply the deterministic verdict cap table, resolve inline anchors by snippet, and emit averdict-gate-compatible proof bundle +SubmitPayload.mewkit review submit --session <id> --reply --confirm <payload-hash>— the sole GitHub write path; re-checks the PR head SHA (aborts without posting if it changed) and is idempotent.mewkit review cleanup --session <id>— remove the ephemeral review worktree (manifest-nonce-owned); the session audit trail is kept.mk:worktree review-pr/review-pr-cleanup— detached, nonce-owned review worktrees; cleanup refuses anything but a matching manifest.
Features
mk:review-prgains an opt-in--assuredlane (full ReviewSession pipeline) and keeps its fast, read-only default lane unchanged.- Scope-driven review topology (small / medium / large tiers) with whole-diff roles a per-chunk territory reviewer cannot own, plus heavy-file invariant slices.
Improvements
mk:reviewPR mode consumes the prepared session; step-03 runs the coverage gate before verdict composition, and step-04 composes the verdict throughmewkit review compose.- Gate 2 (
gate2-check.sh) gains a narrow review-session extension that validates a review verdict's embedded coverage block (hash-clean, no gaps,session-observedrequired for PASS); inert for non-review verdicts.
Security
- All git/gh invocations in the review pipeline use array-argv
execFileSync(no shell). Untrusted PR content is quarantined underuntrusted/and never treated as instructions; the read wrapper is realpath-confined against symlink exfiltration. - Honest capability limit: subagent tool calls do not reach the parent PostToolUse hook, so
session-observedis anti-accidental corroboration (not unforgeable) and proves session-level — not individual-reviewer — access; subagent-driven reviews areattestedand cannot earn Approve.
CLI
- The
mewkitCLI is bumped to 1.19.1 for thereviewcommand group (prepare/read/coverage/compose/submit/cleanup).
2.14.4 (2026-07-19) — The Orientation & Transition Spine
The mewkit CLI ships alongside this kit as 1.19.0 (see CLI below).
Highlights
A fresh session can now recover what it was doing from durable task state alone — no plan or wiki scanning. Explicit activation records one active task plus a canonical pointer, mewkit orient returns a bounded, honest resume envelope (active / none / ambiguous / corrupt-only), and the resume hook injects it through a trust-gated installed runtime with a labeled checkpoint fallback. Trace logging is now one shared append primitive across the shell and CLI, task work is queryable by id, and wiki recall verifies its own index before research trusts it.
CLI
mewkit orient [--json]— safe resume orientation built only from durable task state; reports active, none, ambiguous, or corrupt-only, and never scans plans or the wiki.mewkit plan approvenow durably activates the plan by default (one active record + canonical task pointer);--no-activateopts out, and a failed activation exits non-zero rather than claiming success.mewkit task new --activate— durably activate no-plan work.mewkit task-state updategained--blocker,--verification,--evidence-ref, and--capability-decision, and emits a task-transition trace after a successful write.mewkit query --task <id>— task-joined evidence and plan linkage;mewkit query --presets— recovery-measurement metrics (outcome distribution, stale-warning frequency, transitions missing task context, verification re-runs).mewkit wiki verify [--json]— canonical-vs-index consistency check (page set, per-page body hash, provenance, FTS parity); research refuses to run against an inconsistent index, andwiki contextwarns when the index looks stale.
Improvements
- One shared trace-append primitive now backs every writer — the shell hook and the CLI contend on the same sidecar lock, so concurrent appends can no longer interleave or corrupt a line.
- The resume/clear/compact orientation hook runs through a trust-gated installed runtime (absolute, in-project, symlink-resolved executable) and falls back to a clearly labeled checkpoint summary when no runtime is available; fresh-session startup stays disabled pending its release gate.
- Providers surface an explicit, report-only Qwen entry (no support claimed), and the session-orientation instruction is documented in the capability bootstrap.
Migration Notes
- The derived index schema is now v4 (adds
task_id/plan_pathcolumns for task-joined queries). Additive — it auto-applies on the nextmewkit index/mewkit wiki reindex; no user action required.
2.14.3 (2026-07-19) — Jira & Confluence Agents on Haiku
The mewkit CLI is unchanged at 1.18.2 — this release ships kit content only.
Improvements
- The 16 Jira and 5 Confluence domain agents now pin to the Haiku model tier instead of inheriting the session model, so their CLI-wrapper operations (issue and page CRUD, search, bulk, lifecycle) run on the cheapest tier.
2.14.2 (2026-07-18) — Composed Capability Recall
The mewkit CLI ships alongside this kit as 1.18.2 (see CLI below).
Highlights
When capabilities resolve selects a knowledge-sensitive capability, it now composes a bounded, read-only recall of prior project knowledge directly into the result — the agent reads one knowledgeRecall envelope instead of running a separate wiki lookup. The same activation policy reaches both Claude Code and Codex.
CLI
capabilities resolvenow attaches aknowledgeRecallenvelope to a selected capability — arequired-class capability gets exactly one bounded wiki recall (≤3 snippets, no page bodies);conditional,none, and every non-selected outcome perform zero automatic wiki access.- Missing, empty, and errored wiki indexes are now reported distinctly and always fail open — recall never blocks a resolution.
capabilities resolve --record— opt-in flag that logs one recall decision (counts and status only, never recalled content) through the trace log; default runs stay write-free.- A capability provided by the running
mewkitCLI (invoked vianpxor a workspace bin) now resolves as available with "current CLI process" evidence instead of a false "not on PATH". mewkit --helpnow lists thewikicommand.
Improvements
wiki contextroutes through a shared read-only probe that sanitizes free-text queries into valid full-text-search terms and reads the index without creating-wal/-shmsidecar files.
2.14.1 (2026-07-18) — Harness Integrity & Provider Parity
The mewkit CLI ships alongside this kit as 1.18.1 (see CLI below).
Highlights
This release closes the 2.14.0 harness audit. Gates now prove authority rather than paperwork, the evaluator rejects forged verdicts, provider support is stated from one honest source, Codex migration is default-deny with a measured parity score and a post-migration validator, and the release now gates on its own quality checks.
CLI
mewkit validate --target codex <dir>— a read-only post-migration gate for a generated Codex project that checks the config/hook wiring, that hook wrappers exist, are executable, and carry the deny contract, that agent TOMLs parse, and that installed skills declare a supported runtime and carry no host-bound tool tokens.mewkit providers codexand--lifecyclenow render from a single provider-truth source, and both the migration output and README report askill parity: N%score.mewkit migrate codexis default-deny — a portable skill installs, a host-bound skill installs only through a tested adapter or is skipped with a report reason;mewkit migrate codex --include-unportableoverrides the policy with an EXPERIMENTAL marker.- The cross-harness journey (J10) runs a deterministic layer in CI — migration, target validation, then route/artifact/denied-token/side-effect oracles — with no model calls, reporting structural (not semantic) parity.
- The benchmark path now enforces its cost cap: a run halts when cumulative cost reaches the effective cap (
--budgetorMEOWKIT_BUDGET_CAPoverride the tier cap). mewkit inventory --emit-countsregenerates documentation count tokens from the inventory;npm run release:checkaggregates the release-readiness gates for contributors.
Improvements
- Gate 1 now requires a fresh approval receipt bound to the plan revision — plan-presence alone no longer opens it, and editing the plan after approval re-arms the gate.
- Every pre-ship blocked path exits with a structured deny (
exit 2), and a missing gate checker fails closed for ship commands. - The evaluator recomputes its weighted score from the rubric preset and verifies evidence provenance, so a verdict whose score does not follow from its rubrics is rejected.
- Curated memory has a single JSON write path — a write to a non-canonical view is corrected, and a failed capture surfaces a notice instead of skipping silently.
- The release gates on its own checks (tests, lint, typecheck, format, portable validation, inventory, version sync, and plugin-payload drift), versions sync from the root as the single source, and documentation counts generate from the inventory.
Migration Notes
npx mewkit upgradeto pick up the hardened gates and provider changes — a plan now needsnpx mewkit plan approve <plan-dir>after human approval (orMEOWKIT_GATE1_PRESENCE_ONLY=1to opt out).
2.14.0 (2026-07-17) — Provider Conformance, Contract Safety & Evals
The mewkit CLI ships alongside this kit as 1.18.0 (see CLI below).
Highlights
This release hardens skill contracts and provider portability. Generic skill bodies are cleaned of provider-specific tool names and model IDs so they stay honest per harness, mewkit validate now reports operation-level conformance, and the cook workflow stops after reporting — shipping and reflection are explicit, user-invoked steps rather than automatic.
CLI
mewkit validatenow reports operation-level conformance — it flags a logical operation an installed skill relies on (via its declared tools) that an advertised provider cannot honor, so a cross-harness payload never silently advertises an unsupported capability.- Skill metadata now carries typed dependency edges, surfaced through the generated inventory.
Improvements
cookstops after reporting — shipping and reflection are explicit, user-invoked steps, so a run makes no unrequested commit or push.- Canonical workflow definitions and stricter execution gates across skills, with contract repairs that remove duplicated or conflicting phase ownership.
- Generic skill bodies no longer carry provider tool names, model IDs, or brand tokens; skills genuinely tied to one harness are annotated honestly instead of claiming portability.
- The quick workflow is formalized with a tighter context budget for low-complexity tasks.
plan-creatoris slimmed — visual rendering and lifecycle tasks moved into dedicated skills.scale-routinggains a bilingual English + Vietnamese routing eval covering the common task clusters.
Migration Notes
npx mewkit upgradeto pick up the new skill contracts and the CLI — acookrun that previously auto-shipped now stops after reporting, so invoke shipping explicitly.
2.13.7 (2026-07-15) — Gate Contract Safety, Portability, DX
The mewkit CLI ships separately as 1.17.0 (see CLI below); the two
are versioned independently, so this kit release does not imply a new CLI release.
Highlights
Automation can no longer approve its own gates. The contract said Gate 1 and Gate 2
were human-only, but prose across modes, cook, and autobuild had drifted into
granting approval authority to a script, a score, or an evaluator stamp — and
autobuild's PASS path shipped with no human step at all. The invariant is now
stated once, enforced by a lint that fails CI, and backed by a structural Gate 2
check at the commit/push boundary that actually blocks (exit 2) rather than
printing "BLOCKED" and proceeding.
New Skills
| Skill | Purpose |
|---|---|
mk:advise | Turn a raw idea into ONE honest recommendation: interviews one question at a time until the problem, requirements, goals, non-goals, and constraints are confirmed, then delivers a single verdict with trade-offs, an ordered checklist, and success metrics. Fenced against mk:grill (interrogation, no verdict), mk:brainstorming (options for a settled framing), mk:office-hours (is it worth building), and mk:party (multi-perspective debate). |
New Agents
| Agent | Purpose |
|---|---|
advisor | Isolated advisory executor behind mk:advise. Respawns per turn against a session checkpoint (the harness has no subagent pause/resume), and may write only its transcript plus one optional advice report — never a plan, ADR, verdict, or memory entry. |
New Commands
| Command | Purpose |
|---|---|
/mk:advise | Thin dispatcher for mk:advise — usage, flags, and one authority note. |
CLI
The mewkit CLI (published separately as 1.17.0) adds the enforcement surface:
mewkit plan status <plan-dir>/mewkit plan check <phase-file>— read-only plan inspection: checkbox progress acrossplan.md+ phase files, and a required-section report for one phase. Writes nothing (the plan Markdown stays the sole authority); there is deliberately no scaffold or edit subcommand.
mewkit plan status tasks/plans/260715-my-plan # progress across every phase
mewkit plan check tasks/plans/260715-my-plan/phase-02-thing.mdmewkit validate --gates— fails on any prose granting automated gate approval, in either word order, plus command-vs-skill drift for thefix/cook/plan/advisedispatchers.mewkit validate --parity— regenerates the plugin into a scratch dir and diffs it against the committedplugin/, catching both a forgotten regenerate and a hand-edit.mewkit validatenow also reports stale README/index counts (previously onlymewkit inventory --check).
Features
- Gate Authority Invariant (
gate-rules.md) — automation executes between gates and never supplies the authority of one. Verdicts, scores, and validator exit codes are evidence presented at a gate, never a substitute for it. Holds in every mode, including--autoand--fast. - Structural Gate 2 at the ship boundary (
hooks/lib/gate2-check.sh) — ongit commit/push/merge, resolves the active plan's verdict and blocks withexit 2when a ship-capable change has none. Profile-immune: it runs above the fast-profile early-exit, because Gate 2 has no exceptions. Docs/report-only changes take an explicit N/A path rather than a silent skip. - Logical workflow operations (
ask_user,manage_plan,run_shell,delegate_agent) with per-provider conformance inmewkit providers <p> --lifecycle. Kept deliberately out of the frontmatter-reachable invocation enum — that enum's value is what it excludes — and a build-time check fails if the two sets ever intersect. - Fable 5 advisory model profile —
model: fableresolves to the verifiedclaude-fable-5on Claude Code, and on other providers falls back to the configured heavy tier with a disclosed warning naming both models. Tier-orthogonal: theModelTierunion is unchanged. - Approval-receipt ADR (
docs/architecture/adr/260715-gate2-approval-receipt.md) — designs what would actually prove a human approved, and states plainly why the structural check cannot.
Improvements
/mk:fixis now a thin dispatcher. It previously described a Simple path that skipped the scout its own skill marks MANDATORY, and dual memory writes the skill forbids.mk:scout's Explore workers now carry secret-file guards, a scope fence, and two sections the old prompt never asked for —RisksandUnresolved Questions— plus the A1 status block, so a scout worker terminates with the same vocabulary as every other subagent. Scouting still runs on Claude Code's built-inExplore(Haiku, read-only): a custom executor would be the same model class behind the same subagent boundary, so it was evaluated and not built.- Plan validation presents a recap — path, objective, scope, phase count, top risks, and the section each answer may change — before the first question, and every question is self-contained.
- README and index counts are regenerated from the canonical inventory rather than hand-maintained.
Bug Fixes
pre-ship.shsourced a hook lib without an existence guard; because.is a POSIX special builtin, a missing lib aborted the whole hook — and an aborted hook exits non-2, which is advisory, so the ship proceeded unchecked.- The
git add . && git commitpattern shipped brand-new source files ungated: at PreToolUse theaddhas not run, and neither a staged nor aHEADdiff shows an untracked file.
2.13.6 (2026-07-13) — Local Visual Plan Review
Highlights
Plans that carry UI can now be reviewed visually and locally. A plan directory gains a structured visual-plan/plan.json artifact — a coverage ledger plus a canvas of surface-locked wireframes, connectors, and annotations — that a deterministic CLI validates and gates, and a transient 127.0.0.1 studio renders and edits. Reviewer edits become immutable feedback batches an agent applies back through a receipted, stale-safe loop. The experimental mewkit orchviz visualizer is retired in favor of this workflow.
CLI
The mewkit CLI (published separately as 1.16.1) adds the surface behind this workflow:
mewkit visual-plan— new subcommands to validate, gate, review, and edit a plan's visual artifact with no hosted service:
mewkit visual-plan validate <plan-dir> # schema + coverage closure + refs + safe-HTML + hash freshness
mewkit visual-plan status <plan-dir> # coverage summary + review status
mewkit visual-plan approve <plan-dir> --revision <n> # the Gate-1 transition (single writer of review.status)
mewkit visual-plan export <plan-dir> --format html # self-contained plan.html from the approved artifact
mewkit visual-plan view <plan-dir> # read-only local studio
mewkit visual-plan edit <plan-dir> # editable local studio (single-editor lock)
mewkit visual-plan prepare-feedback <plan-dir> --ops <file> # freeze an immutable feedback batch
mewkit visual-plan apply-feedback <plan-dir> --batch <id> # apply a batch (--check / --receipt)- The studio binds
127.0.0.1only, guards the Host header against DNS rebinding, serves under a strict CSP, and sanitizes wireframe HTML at both save and render; writes use optimistic concurrency viaIf-Match. - The studio renders wireframes in a hand-drawn sketch register by default — a scoped design-token theme styles the full
.wf-*vocabulary, rough.js redraws each element outline hand-drawn, and a Clean toggle switches to crisp borders; the same theme is embedded in the exportedplan.htmlso studio and export match.
Improvements
mk:plan-creatorgates the structured visual pipeline behind the--htmlflag — it is opt-in and off by default, so ordinary (backend/refactor) plans stay light. With--html, the plan generates a visual artifact and routes throughvalidateand a humanapproveat Gate 1 before build.mk:visual-plannow defaults to the structured artifact + local studio (generate/validate/view/edit/export); the legacy single-fileplan.htmltemplate render moves behind--static.
Removals
- Removed the experimental
mewkit orchvizvisualizer and its web bundle — superseded bymewkit visual-planand the reusable local-web loopback primitives it shares. No external consumers; the token-estimation heuristic it carried is preserved formk:context-audit.
2.13.5 (2026-07-12) — Capability Discovery + Durable Task State
Highlights
An installed kit can now tell an agent, at session start, that a capability resolver exists — a bounded, brand-neutral discovery bootstrap surfaces on the SessionStart hook so the agent resolves an intent to the right skill/agent/command instead of guessing. A new contextual rule records durable task state — status, the last completed step, the next action, and capability decisions — so a fresh session resumes a long-running task from files alone.
Features
- Capability-discovery bootstrap — a SessionStart hook emits a small, budget-capped, injection-safe pointer to the capability resolver. It carries generic functional language only; the full capability manifest is never injected into a session.
- Task-state emission rule — orchestration flows record status, the last step, the next action, and capability decisions to a durable per-task record, so a fresh session reconstructs an active task from files without replaying the transcript.
Improvements
mk:cook,mk:plan-creator, andmk:reviewreference the task-state emission rule at their orchestration boundaries — emission is advisory and best-effort, so a missing CLI never blocks the workflow.
CLI
The mewkit CLI (published separately as 1.15.0) adds the surface behind these features:
mewkit capabilities— inspect and resolve the capability manifest (list,explain,resolve --intent,view,bootstrap,projections).mewkit context— task-scoped repository-context evidence (resolve,check,record); each path resolves to its own owning repository, so a folder holding many repos never conflates their context.mewkit providers --lifecycle— per-provider lifecycle-event matrix + the capability-adapter view (support levels, acquisition, invocation shapes, enforcement gaps).mewkit task-state— inspect and update the durable task record (show,update).mewkit doctor --consolidation— the consolidation/deprecation ledger (classification, not a runtime-availability claim).
2.13.4 (2026-07-05) — Figma Gateway + Agent-Browser Hardening
Highlights
mk:figma is refactored from a "does everything" skill into an honest read-first gateway. The default path stays lean — design analysis, Figma-to-code for small screens, token extraction, and a screenshot fallback — while advanced operations (Code Connect, canvas writes, and design-system/library patterns) become gated references that load only on explicit intent with confirmed prerequisites. A capability router maps any Figma intent to the right mode or gated reference in one lookup, so advanced work is no longer routed to external skills that may not exist in your environment.
mk:agent-browser expands into a fuller browser-automation gateway — a specialized-workflow router (exploratory QA/dogfooding, Electron desktop apps, Slack automation, and cloud browser providers), a consolidated trust-boundaries safety reference, and scoped MCP tool profiles so a task exposes only the browser tools it needs.
mk:figma also gains a versioned Figma Evidence Packet — a compact, provenance-bearing handoff of design intent that mk:plan-creator turns into viewport/state acceptance criteria and a critical-action validation matrix without re-analyzing the design source. Prototype-flow artifacts make navigation flow reviewable — extracted, inferred, confirmed, or blocked — instead of silently guessed, and mk:visual-plan can render it as an offline interactive flow explorer.
Improvements
mk:figmaadvanced workflows (Code Connect, canvas writes, design-system rules) are gated behind explicit intent and confirmed prerequisites instead of loading by default.- The Figma pre-flight checklist is now per mode — read-only analysis no longer runs the full write-path checklist.
- Token extraction normalizes Figma Variables against Color Styles and surfaces the Enterprise permission caveat for local variables.
- Large or truncated designs fall back to
get_metadatawith targeted child fetches instead of proceeding on a partial tree. - The Figma-to-code validation checklist now covers accessibility, interaction states, component reuse, and asset scale.
mk:agent-browsergains a specialized-workflow router for exploratory QA/dogfooding, Electron desktop apps, Slack automation, and cloud browser providers (Browserbase, AWS AgentCore, Vercel Sandbox).- A consolidated trust-boundaries reference gathers the safety rules for authenticated, third-party, production, and user-data browser tasks in one place.
- New Slack browser-automation workflows and a dogfood issue taxonomy ship with report templates for QA and Slack analysis.
- MCP tool profiles (
core,network,react, and more) letmk:agent-browserexpose only the browser tools a task needs. mk:figmaemits an optional versioned Figma Evidence Packet — design intent, provenance, tokens, states, and a validation contract — as the stable handoff for planning and implementation.mk:figmaMode 2 no longer claims standalone production-ready output — production now flows through the packet, plan, browser evidence, and deterministic checks.mk:figmacaptures prototype-flow artifacts with an ambiguity ledger, distinguishing extracted from inferred and blocked navigation instead of guessing from screenshots.mk:plan-creatorconsumes a design evidence packet directly — deriving viewport/state acceptance criteria and a critical-action validation matrix — and never re-analyzes the design source.mk:plan-creatorblocks only affected phases on unresolved high-risk flow ambiguity via an additive phase field, keeping the overall plan approvable at Gate 1.mk:visual-planrenders an optional offline prototype-flow explorer alongsideplan.htmlwhen a flow graph is present.
Bug Fixes
- Prototype (
/proto/) links are no longer sent toget_design_context— the skill asks for the/design/editor URL, resolving a contradiction between the URL rules and the implement workflow. - Figma page switching uses the async
setCurrentPageAsyncAPI instead of the legacy synchronous assignment. - Figma variable creation no longer defaults to
ALL_SCOPES, which previously polluted property pickers with variables visible everywhere.
2.13.3 (2026-07-04) — Context-Engineering + Prompt-Enhancer Hardening
Highlights
A new mk:context-engineering skill gives the agent a runtime front door for context decisions — what to read, when to stop, when to ask vs assume, and when to compact or delegate — routing to 25 context patterns one reference at a time so the skill that manages context does not itself bloat it. Alongside it, mk:plan-creator gains a Plan Intake Packet step that folds several upstream artifacts into one deduplicated brief before planning starts, and mk:prompt-enhancer is hardened to stay model-agnostic by default — a model-coupled data-separation default is replaced with a neutral fence, a complexity classifier tunes emphasis without changing the portable rewrite, and model-specific steering becomes an opt-in annotation shown only under --analyze when you name a target.
New Skills
| Skill | Purpose |
|---|---|
mk:context-engineering | Runtime router for context decisions — read-more / stop / ask / assume / delegate, pick a minimal read-set, and time compaction. Front page is Write / Select / Compress / Isolate; a lazy pattern index routes to 25 patterns, one reference per decision. Complements mk:context-audit (which owns the structural .claude/ overhead question) with the runtime-decision half. |
Improvements
mk:plan-creator— Plan Intake Packet. When two or more upstream artifacts already exist (office-hours, brainstorming, planning-engine, confluence-spec, ormk:intakeoutput), a new conditional step consolidates them into a single Plan Intake Packet before research and drafting — so planning starts from one deduplicated brief instead of several overlapping documents. It clean-skips when fewer than two artifacts are present, adding no cost to ordinary plans.mk:context-auditnow carries a reciprocal boundary note pointing runtime context decisions tomk:context-engineering, so the two context skills disambiguate in both directions.mk:prompt-enhancerkeeps its default data-separation fix model-neutral — a plain--- DATA ---fence replaces the previous Claude-specific<context>wrapper, so the rewrite stays portable across coding agents.mk:prompt-enhanceradds a complexity classifier and per-type recipes — migration, planning, debugging, review, research, long-context, design, and orchestration — that tune output emphasis and length without changing the universal kernel or adding a role.mk:prompt-enhancermodel-specific steering is now an opt-in target-notes annotation that renders only under--analyzewhen the input names a target and never alters the portable rewrite.
2.13.2 (2026-07-03) — Deep Research Skill + Full-Surface Codex Migration
Highlights
A new mk:research skill gives you a standalone front door for deep, multi-source technical research that returns one cited report, and mewkit migrate now converts a project's full .claude/ surface to Codex correctly — references inside fenced code blocks are rewritten instead of left as dead links, Codex commands install as skills, and a conversion report flags anything unresolved.
New Skills
| Skill | Purpose |
|---|---|
mk:research | Deep multi-source technical research — delegates to a researcher subagent under primary-source discipline and a retrieval-call cap, and returns one cited report. |
Features
mk:research --html— after the markdown report, author a self-contained editorial HTML report beside it; the markdown stays the source of truth.mk:research --deep— split the question across two parallel researcher subagents on independent sub-topics.
CLI
mewkit migraterewrites.claude/references fence-aware — paths inside fenced code blocks are converted instead of left as dead links, and the previous fence-unaware replace that fabricated nonexistent provider paths is gone.- Codex migration re-enables commands as skills, converts
.shhooks through generated wrappers, preserves matcher coverage where Codex supports it, and records unsupported events instead of dropping them silently. - Codex migration emits
[shell_environment_policy]scaffolds from.claude/.envkey names, omits secret-like keys, and surfaces.mcp.jsonconversion through--include-mcp. - Codex migration records every migrated, skipped, failed, or narrowed artifact in
.codex/migration-report.jsonand.codex/migration-report.md. mewkit migratereportsproject_doc_max_bytesguidance for over-budget CodexAGENTS.mdoutput instead of truncating or relying on undocumented nested-file behavior.mewkitCLI package version:1.14.1.
2.13.1 (2026-06-29) — Wiki Handoff + Context Recall
Highlights
Knowledge-producing skills can now hand a finished artifact to the wiki — it is scanned and turned into a proposed candidate with full provenance only when it clears the salience gate — and any flow can recall prior knowledge through a disciplined, DATA-bounded wiki context surface. The capture path stays gated end to end: agents still only propose, and a human approve remains the only route to a canonical page.
Features
mewkit wiki handoff suggest|propose|profiles— turn a skill's terminal artifact into a scanned candidate, driven by a per-skill registry (class required / conditional / none).suggestis read-only;proposerejects sensitive or out-of-root artifact paths before reading.mewkit wiki context "<keywords>"— disciplined recall returning ranked pages with a project-root-readable path and a snippet; bodies only with--include-content, and it fails open when no index exists.wiki proposenow accepts full provenance —--origin,--source-id(repeatable),--reuse-scope,--verification-state,--risk-score,--review-after,--novelty-delta,--salience-json— instead of hardcoding origin and salience.- New
wiki-context-rulesrule marks all wiki content as DATA and bounds the Phase 0 recall probe.
CLI
- Documented the full runtime command surface in the CLI reference —
wiki,index,query,inventory,trace,pack,providers/explain-support,build-plugin,verdict-gate, andbudget context.
Improvements
wiki hintandwiki searchnow return a project-root-readablepath(tasks/wikis/<slug>/pages/…) instead of an internal page id.
Migration Notes
- The derived index schema advances to version 3 (additive
wiki_handoff+wiki_candidate_sourcetables). It auto-applies on the nextnpx mewkit indexornpx mewkit wiki reindex— no user action and no data loss.
2.13.0 (2026-06-29) — The Wiki Knowledge Subsystem
Highlights
MeowKit gains a gated, long-term knowledge base. Agents and reviewers can capture provenance-bearing project knowledge, search it with full-text search, and render it to a self-contained HTML page — under a security model where agents may only propose content and a human approval (which always re-scans) is the only path to a canonical page.
New Skills
| Skill | Purpose |
|---|---|
mk:wiki | Capture, gate, query (FTS), and list long-term project knowledge via mewkit wiki. |
mk:wiki-research | Fetch external web / arXiv / GitHub sources into scanner-gated candidates (network opt-in). |
mk:wiki-render | Render a wiki into one self-contained, offline HTML snapshot with provenance. |
CLI
- New
mewkit wikicommand —init · propose · approve · reject · search · hint · list · render · reindex · enqueue · research. - The derived SQLite index is consolidated into a single rebuildable
wiki-index.db(trace + cost + wiki tables + FTS5);mewkit indexandmewkit queryare preserved.
Features
- Anti-self-poisoning write model — agents propose candidates only; canonical pages are written solely through
mewkit wiki approve, which always re-runs the scanner. - Every write passes secret-scrub plus a multi-pass injection scan; rejected content is quarantined with an intervention and a trace event.
Beta
mk:wiki-researchexternal fetch is opt-in and disabled by default — sources are url-guarded against SSRF, size-capped, and redirect-re-validated per hop, and fetched content can only ever become a candidate.
2.12.3 (2026-06-28) — Visual + HTML Workflow
Highlights
Brainstorm reports and approved plans now render to self-contained HTML on demand, and five complementary visual skills join the mk: namespace — diagrams, long-form reading, shareable showcases, and text-to-UI design.
New Skills
| Skill | Purpose |
|---|---|
mk:mermaidjs-v11 | Author Mermaid v11 diagram blocks for markdown, READMEs, and code comments. |
mk:tech-graph | Generate publish-grade SVG/PNG technical diagrams; degrades to SVG-only without rsvg-convert. |
mk:markdown-reader | Serve long-form markdown in a local reader with an explicit start/stop lifecycle. |
mk:showcase | Package a mission and artifacts into a self-contained, shareable HTML showcase. |
mk:stitch | Generate new UI designs from a text prompt — external-service-gated, fails closed without a key. |
Improvements
mk:brainstorming --html— after the markdown report, authors a self-contained editorial HTML report beside it (opt-in; markdown stays source of truth).mk:plan-creator --html— after Gate 1 approval and task hydration, renders the plan to a shareableplan.htmlviamk:visual-plan(opt-in; markdown plan files stay source of truth).
Removals
- Removed
mk:preview --html --plan-review— plan-as-HTML rendering is now owned solely bymk:visual-plan(mk:visual-plan <plan-dir>).mk:previewkeeps--explain,--diagram,--slides, and--diff.
2.12.2 (2026-06-28) — Visual Plan Rendering
Highlights
A plan directory (plan.md + phase-*.md) now renders into ONE self-contained, shareable plan.html a reviewer can scan in under 30 seconds — phases, architecture, decisions, risks, and files-touched, without reading prose. Consistency comes from a fixed template, one shared theme, and a disciplined block vocabulary, so two unrelated plans look the same. It is prompt-only and self-contained; the only external dependency is the pinned Mermaid CDN, with a visible source fallback when offline.
New Skills
| Skill | Purpose |
|---|---|
mk:visual-plan | Render a plan into one shareable, block-disciplined plan.html at the plan-dir root. |
2.12.1 (2026-06-27) — Native Plugin Distribution
Highlights
MeowKit is now installable as a native plugin in both Claude Code and Codex (mk), alongside the existing flat-copy install. The plugin distribution is generated from the same .claude/ source — no second source of truth — so skills (/mk:*), agents (mk:*), and hooks all resolve under the plugin. The flat-copy mewkit init path is unchanged.
New Skills
| Skill | Purpose |
|---|---|
mk:chrome-profile | Target a real Google Chrome profile for browser automation. |
mk:ghpm | GitHub project management — Issues, Projects, labels, milestones via gh. |
mk:html-video | Render local MP4 videos from HTML/CSS/JS templates. |
CLI
mewkit build-plugin— generate the native plugin distribution (plugin/payload + Claude and Codex marketplaces) from.claude/.mewkit validate --plugin— guard namespace purity, plugin-manifest contract, and manifest-version alignment; runs in CI.mewkit doctornow reports the active install mode and warns when flat-copy and the plugin are installed together.
Features
- Native plugin install for Claude Code (
claude plugin install mk@meowkit) and Codex (codex plugin add mk@meowkit). - Hook parity in plugin mode —
settings.jsonhooks are translated intoplugin/hooks/hooks.json, so gates and safety hooks fire under the plugin too.
Improvements
- The harness substrate now reports full coverage — a new intervention-recording rule tags the previously-uncovered responsibility, bringing
mewkit inventory --substrateto 12/12.
2.12.0 (2026-06-27) — Legible Context + Queryable Substrate
Highlights
The outer harness gains a legible context layer and a queryable substrate across sessions. A new phase × tier read-budget tells any inner harness how much context to load per phase; every harness artifact now carries a vendor-neutral responsibility so coverage is auditable; and an on-demand trace surface recalls repeated friction, drift, and cost aggregates from the existing append logs. Everything is additive, advisory, and inner-harness-agnostic — no gate, verification, or hook behavior changes.
CLI
mewkit trace score|audit|propose— on-demand trace-quality tier, entropy/drift audit, and advisory grouping of repeated friction over the append logs.mewkit trace --friction "<note>" --responsibility <r>— record friction with no inner-harness hook required.mewkit inventory --substrate— print a responsibility×coverage matrix generated from the registry;--emitwrites the committed view.mewkit indexandmewkit query— opt-in derived SQLite index over the append logs (rebuild-able and disposable; the logs stay canonical) with read-only aggregate queries.mewkit validate --substrate— flag untagged registry artifacts and a stale substrate view, now run in CI.
Features
- New
context-budget-rules— a vendor-neutral 7-phase × 3-tier read-set and token-ceiling matrix with retrieval triggers, so an agent loads the smallest right context per phase. - Every harness artifact now carries a
responsibilitytag (eleven Runtime-Substrate values plusgate-enforcement), so the dead-weight audit can target by responsibility instead of by file.
Improvements
- The Phase-6
analystagent now prefersmewkit index+query+trace auditfor cross-run cost and pattern rollups instead of hand-parsing the JSONL logs, and falls back to the raw log when the index is absent.
Beta
mewkit index/mewkit queryare opt-in and use the experimentalnode:sqlitebuiltin — the derived index is disposable and never the source of truth.
2.11.7 (2026-06-20) — Brainstorming Solution Decompression
Highlights
mk:brainstorming now handles the case where you arrive holding a solution instead of a problem. When the input is itself a solution ("just build X", a preselected feature, a roadmap item), the skill first decompresses it into the underlying problem and three alternative problem framings before generating any ideas — and redirects to mk:office-hours when the problem's value is unvalidated. It stays read-only and never grades evidence inline.
Improvements
mk:brainstormingdecompresses a solution-input to the underlying problem and three or more problem framings before ideating, through a newsolution-decompressionpre-step technique.- The pre-decided-user gotcha and the repeated-redirect edge case now recover the problem first, then optionally stress-test the chosen path with
reverse. - Brainstorm reports can be rendered as a self-contained HTML brief through
mk:preview --html --explain.
2.11.6 (2026-06-19) — Merge Conflict + Codebase Architecture Skills
Highlights
A new on-demand skill, mk:resolving-merge-conflicts, walks an in-progress git merge or rebase to a clean finish. It reads the conflict state, recovers the original intent behind each side from commit history and PRs, resolves every hunk — preserving both intents where they are compatible — then runs the project's checks and completes the merge or rebase. It always resolves rather than aborting, and never invents new behavior.
A second on-demand skill, mk:improve-codebase-architecture, reviews a codebase for deepening opportunities — shallow modules whose interface nearly matches their implementation — emits them as structured candidates for mk:preview to render, then grills a chosen candidate into a precise, type-safe patch. It owns analysis and patch emission only; all rendering is delegated to mk:preview.
New Skills
| Skill | Purpose |
|---|---|
mk:resolving-merge-conflicts | Resolve an in-progress git merge or rebase conflict end to end — read state, recover each side's intent, resolve hunks, run typecheck/tests/format, and finish the merge or rebase. |
mk:improve-codebase-architecture | Review a codebase for deepening opportunities, emit structured candidates for mk:preview to render, then grill a pick into a type-safe patch — analysis and patch emission only, no embedded rendering. |
2.11.5 (2026-06-18) — Long-Horizon Run Hardening
Highlights
The problem this release fixes: on long, multi-phase plans (and autonomous runs), the context window fills up and gets reset or compacted — and the agent could lose track of which phase it was on, redo finished work, or skip steps.
2.11.5 makes that progress durable on disk instead of trusting in-context memory. After every phase, mk:cook writes a mandatory checkpoint, mk:plan-creator records how much latitude the agent has so it survives a cold start, and plans are now split into runnable end-to-end slices so the project always works between phases. No new features — this hardens how state survives a reset.
Improvements
- Resume on the right phase after a reset.
mk:cooknow writes a checkpoint after every completed phase — it is mandatory, not best-effort. The checkpoint lands in two durable places (the phase-file checkboxes and theplan.mdAgent State) before moving to the next phase, so a brand-new session reads the disk and knows exactly where to continue. - One source of truth for resume state. Phase-file checkboxes and frontmatter are now the canonical record of progress.
.plan-state.jsonis just a derived cache — regenerated at the final sync-back, never hand-edited mid-run — so the three places that used to drift can no longer disagree. - Autonomy limits that survive a cold start. For long-horizon plans,
mk:plan-creatorwrites anAutonomy Boundariesblock: a simple three-tier guide (Always allowed / Ask first / Never) for how far the agent may act on its own. It is written into the plan so it is not lost on reset. Fast, trivial, and single-phase plans skip it to avoid paying the token cost forever. - The agent reads those limits according to how you run it. At startup
mk:cookapplies the block by mode: an interactive run asks you before any significant reversible choice; an autonomous run takes the safe default and logs it instead of stopping. If the block is missing, it degrades gracefully — proceeding on reversible, in-scope changes. - Each phase delivers a working end-to-end path.
mk:plan-creatornow splits work into vertical slices by default (one complete feature path per phase) instead of horizontal layers (all DB, then all API, then all UI). The system stays runnable after every phase — which matters most when a run is interrupted partway. Horizontal phases are kept only for foundations like migrations and shared types. - Smarter phase splitting. Two new signals trigger a split: an "and" in a phase title, or two clearly separable deliverables. This works within the existing rule of at least two and at most seven phases.
Migration Notes
- Run
npx mewkit upgradeto pick up the updatedmk:cookandmk:plan-creatorbehavior. - No CLI package version bump is required for this release because the changed commits do not modify
packages/mewkit/src.
2.11.4 (2026-06-18) — Post-Compaction Safety Re-Arm
Highlights
Native compaction no longer leaves a session running without its safety baseline. The PreCompact hook now re-arms the per-session verification marker, so the next turn re-reads the safety rules whose text compaction dropped — instead of trusting a stale "already verified" marker and skipping the re-read.
Bug Fixes
- Safety baseline is no longer skipped after compaction — compaction drops the rule text from context but used to leave the per-session "verified" marker intact, so the
PreCompacthook now re-arms that marker to force a fresh re-read on the next turn, and the cached-skip resumes only once a genuine re-read re-verifies.
Improvements
- Long autonomous runs gain an observation-budget rule — summarize tool output to the relevant finding on receipt and drop or compress the oldest observations once new ones exceed the budget, rather than carrying full raw output across turns.
2.11.3 (2026-06-14) — Vue 3 Skill Suite
Highlights
Vue support grows into a full skill suite. mk:vue is restructured from a single patterns file into focused references and now covers the Pinia Colada data layer plus Vue 3.4/3.5 core APIs, <script setup> compiler macros, and advanced reactivity patterns. Two invoke-only advisors join it — mk:vue-best-practices for deep best-practices review and the ordered authoring workflow, and mk:vue-testing-best-practices for Vue test design and test-code review.
New Skills
| Skill | Purpose |
|---|---|
mk:vue-best-practices | Deep Vue 3 best-practices review and the full ordered authoring workflow — built-in components, animations, slots, fallthrough attrs, custom directives, async components, render functions, plugins, and a post-functionality performance pass. Invoke-only; complements mk:vue. |
mk:vue-testing-best-practices | Vue 3 test-design advisor and test-code reviewer — audits Vitest + Vue Test Utils tests for components, composables, Pinia stores, router, async/Suspense/Teleport, forms, and accessibility, plus Playwright E2E strategy. Advisory only; never runs tests. |
Improvements
mk:vueis split from one patterns file into focused references for components, composables, reactivity, routing, and state.mk:vuegains Pinia Colada data-layer coverage — core queries/mutations, advanced patterns, plugins, and direct cache access.mk:vueadds Vue 3.4/3.5 coverage — new core APIs,<script setup>compiler macros, and advanced reactivity patterns.- The status line is simplified — heavy rendering and caching logic removed for a leaner, more reliable output.
Migration Notes
- Run
npx mewkit upgradeto pick up the new skills. - No CLI package version bump is required for this release because the changed commits do not modify
packages/mewkit/src.
2.11.2 (2026-06-13) — Grill Plan-Interrogation Skill
Highlights
One new pre-planning skill joins the catalog. mk:grill relentlessly interviews you about your own plan or design — one question at a time — resolving each branch of the decision tree until you both share the same understanding. It is the inverse of the other elicitation skills: Claude is the interviewer and you are the interviewee. Every answer is checkpointed to docs/knowledge/<slug>.md so progress survives a context-window reset, anything you cannot answer is flagged as a gap to chase down, and the session ends by handing the front-loaded context to mk:skill-creator, mk:plan-creator / mk:brainstorming, or mk:project-context.
New Skills
| Skill | Purpose |
|---|---|
mk:grill | Relentless one-question-at-a-time interview of your own plan or design — resolves every decision-tree branch, checkpoints each answer to docs/knowledge/<slug>.md, flags the gaps you cannot answer, and hands off to the right build skill. Read-only on the source doc. |
Migration Notes
- Run
npx mewkit upgradeto pick up the new skill. - No CLI package version bump is required for this release because the changed commits do not modify
packages/mewkit/src.
2.11.1 (2026-06-11) — Ask-Me Project Q&A Skill
Highlights
One new cross-cutting skill joins the catalog. mk:ask-me answers factual and explanatory questions about the current project — "how does X work here", "why is X structured this way", claim-checks — with cited file:line evidence instead of a long grep session. It is read-only by default, enforces hard read budgets per depth tier, separates verified claims from inference with a mandatory confidence level, and redirects ideation, decisions, debugging, and reviews to the owning specialist skill rather than partially answering.
New Skills
| Skill | Purpose |
|---|---|
mk:ask-me | Evidence-grounded project Q&A — answers "how does X work here", "why is X structured this way", and claim-checks with cited file:line evidence, hard read budgets, and redirect-first routing to specialist skills. Read-only by default. |
Migration Notes
- Run
npx mewkit upgradeto pick up the new skill. - No CLI package version bump is required for this release because the changed commits do not modify
packages/mewkit/src.
2.11.0 (2026-06-11) — Context Tiers + Harness Guardrails
Highlights
This release tightens the harness's always-on context and adds guardrails across it. The intent → skill routing table moved out of always-loaded rules, context-budget reporting now splits by load tier, hook-registration drift is caught in both directions, skills can declare their external-service contract, and mk:help now ranks your next steps with rationale.
New Commands
/mk:help— thin wrapper for the forward-looking navigator that ranks your next steps.
CLI
mewkit budget contextnow reports an always-on / conditional / on-demand tier breakdown;--jsongains atiersfield alongside the existing top-level totals.mewkit validate --rules— new scoped check that warns when a broad intent → skill routing table lives in an always-loaded rule.- The
mewkitpackage version for this release is1.10.7.
Features
mk:helpnow emits a ranked top-3 of next steps with rationale, reading checkpoint, budget, detected-model, review-verdict, and roadmap state with graceful handling when a source is absent.- Skill frontmatter gains three advisory tool-contract fields —
requires_external_service,default_enabled, andstable_output_contract— surfaced by the frontmatter validator as warnings. - New benchmark audit mode —
git-index-audit.shrecords a reproducible git tracked-state fingerprint (tracked-path and index SHA-256, file and directory counts, optional two-checkout comparison) as a JSON artifact.
Improvements
- The intent → skill routing table moved out of always-loaded
agent-routing.mdinto an on-demandmk:agent-detectorreference, trimming always-on context. mewkit budget contextno longer counts conditional rules as always-on.- Hook-registration validation now detects drift in both directions — a registered hook missing on disk, and a
handlers.jsonentry with no file — not only unregistered scripts. - Brand-prose lint gains a diff mode that fails on violations in changed files while treating pre-existing violations in untouched files as warnings.
- Team-mode coordination detail moved out of always-loaded rules into a
mk:team-configreference, loaded only when team mode activates.
2.10.3 (2026-06-10) — Memory + Plan Completion Cleanup
Highlights
Fix memory capture is now JSON-only, and plan completion no longer waits for the ship phase. Completed plan todos now close the plan lifecycle immediately.
CLI
POST /api/plan/todonow marks a plan complete and moves it totasks/plans/archive/when the final non-abandoned phase todo is checked.- The
mewkitpackage version for this release is1.10.5.
Improvements
mk:fixandmk:cooknow direct bug-class learnings to.claude/memory/fixes.jsononly.- Plan sync-back now treats completed task checkboxes as the source of truth for plan completion.
- Manual
/mk:plan archiveremains confirmation-based, while completion-driven archiving runs only after every plan todo is checked.
Bug Fixes
- Fix capture no longer creates an unnecessary duplicate Markdown memory entry.
- Finished plans are no longer left active until
/mk:shipruns.
Migration Notes
- Run
npx mewkit upgradeto pick up the updated workflow instructions and plan lifecycle behavior.
2.10.2 (2026-06-02) — PR Review + Response Skills
Highlights
Two single-purpose PR-collaboration skills join the reviewer's toolkit. mk:review-pr gives a fast shallow verdict on someone else's PR, and mk:respond-pr triages the comments you receive with verify-before-agree discipline. Both are read-only on code and only write to GitHub when you opt in with --reply.
New Skills
| Skill | Purpose |
|---|---|
mk:review-pr | Reviews a GitHub PR with a single shallow correctness/security/breaking/AI-slop checklist and emits a verdict; optionally posts it via gh pr review. |
mk:respond-pr | Triages reviewer comments on a PR with receiving-review discipline — verify each against the codebase, then accept/push-back/clarify, and optionally reply in-thread. |
Migration Notes
- Run
npx mewkit upgradeto pick up the two new skills. - No CLI package version bump is required for this release because the changed commits do not modify
packages/mewkit/src.
2.10.1 (2026-06-02) — Brainstorming Rigor + Prompt Recipes
Highlights
Two planning-adjacent skills get tighter boundaries. mk:brainstorming now challenges its own idea set before recommending, while mk:prompt-enhancer gains recipe-mode routing for architecture-review and research-style prompts without turning into a reviewer or researcher.
Features
mk:prompt-enhancerarchitecture-review recipe —--analyze --deepcan rewrite a draft prompt so it asks for architecture findings with severity, evidence, and decisions-needed while the enhancer itself emits no findings.mk:prompt-enhancerresearch recipe — discovery prompts now get grounding, attention-anchored ordering, and explicit acceptance criteria while leaving actual research tomk:scoutor the downstream agent.mk:prompt-enhancerrecipe canaries — architecture-review and research prompt canaries guard against role confusion, alongside updated eval-suite guidance for manual LLM-judged checks.
Improvements
mk:brainstormingnow runs a challenge pass before recommendation, checking duplicate architectures, hard-constraint violations, category diversity, conservative drift, and missing stakeholder failure modes.mk:brainstormingnow tracks context budget explicitly, keeping scout bridge summaries, rejected alternatives, and handoff packets compact instead of passing full transcripts downstream.mk:brainstormingreports now self-check for problem, binding constraint, success criterion, excluded scope, technique choice, challenge result, recommendation evidence, and handoff completeness.mk:prompt-enhancermode routing is now centralized, with default, analyze, score, deep, architecture-review, and research behavior documented in one reference.mk:prompt-enhancer --deepclarifies that the local scanner is a bounded hint source and broad repository mapping remainsmk:scout.
Migration Notes
- Run
npx mewkit upgradeto pick up the updated skill contracts, reference docs, and canaries. - No CLI package version bump is required for this release because the changed commits do not modify
packages/mewkit/src.
2.9.14 (2026-05-30) — Autobuild Rename + mk:loop
Highlights
The autonomous green-field build pipeline is now mk:autobuild — a name that says what it does — and a new mk:loop skill drives one measurable metric (coverage, bundle size, lint count, latency) toward a target through bounded, git-tracked iterations that keep wins and revert regressions.
New Skills
| Skill | Purpose |
|---|---|
mk:loop | Improve one scalar metric through bounded, boundary-gated iterations — modify one scoped change, verify, keep or git revert. One human approval before the loop, then autonomous up to a hard cap. |
Removals
mk:harnessis renamed tomk:autobuild— the same planner → contract → generator ⇄ evaluator pipeline, clearer name. Invoke it as/mk:autobuild;/mk:harnessno longer resolves.MEOWKIT_HARNESS_MODEis renamed toMEOWKIT_AUTOBUILD_MODE— valuesMINIMAL|FULL|LEANare unchanged.
Migration Notes
- Run
npx mewkit upgradeto pick up the renamed skill, command, and rules. - Replace any
/mk:harnessinvocation with/mk:autobuild. - Replace
MEOWKIT_HARNESS_MODEwithMEOWKIT_AUTOBUILD_MODEin your shell config or CI.MEOWKIT_BUDGET_CAPand--budgetare unchanged.
2.9.13 (2026-05-30) — Fix Gate Parity & Workflow Evidence Index
Highlights
mk:fix now follows the same no-self-approval discipline as the rest of the workflow, and a new MeowKit-native workflow evidence index gives mk:fix, mk:cook, mk:review, and mk:ship a single traceable record of what ran — without ever approving anything itself. Gate 1 and Gate 2 remain human authority.
Features
- Workflow evidence index —
mk:fixandmk:cookpopulate oneworkflow-evidence.jsonper run indexing task, risk flags, diagnosis or contract, verification, verdict path, and approvals; it is traceability only, carries no score, and mirrorsvalidate-gate-1.sh/validate-gate-2.shrather than replacing them. - A zero-dependency validator (
.claude/scripts/validate-workflow-evidence.cjs) checks evidence completeness before approval prompts; the contract lives in.claude/rules-conditional/workflow-evidence-rules.mdand loads on demand, adding no always-on context. mk:shippre-flight reads the evidence index when present — aftermk:verify, which keeps abort authority — and surfaces approvals, verdict, and verification as proof; absent evidence ships exactly as before.
Improvements
mk:fix --autono longer self-approves from a review score — it auto-fixes blocking issues up to the cycle limit, then stops at ready for user approval, and crossing Gate 2 or a ship boundary always requires explicit human approval.mk:fixadds a six-field root-cause proof checkpoint (HARD GATE) before implementation — exact symptom, deterministic reproduction, expected vs actual, root cause withfile:line, why now, blast radius — with a compact one-phrase form for--quick.mk:cookrecords evidence across Phase 0-6 from outputs that already exist with no new phase or gate, and--autowording is clarified — automatic execution between gates, never automatic Gate 2 approval.mk:reviewrecords the verdict path in the evidence index; the verdict and side-effect behavior are unchanged.
Migration Notes
- If you relied on
mk:fix --autoproceeding past review automatically on a high score, you now confirm at the ready for user approval checkpoint — no flag change is required, only the approval step is now explicit. - Standalone standard/complex
mk:fixruns now require the six root-cause fields before a fix is applied; simple and--quickfixes use the compact form and are otherwise unaffected.
2.9.12 (2026-05-30) — JSON-first memory + observability cleanup
Highlights
Curated project memory is now JSON-first — the .json stores are the canonical, schema-validated source and human-readable Markdown is generated from them. The conversation-summary subsystem is retired, so long-session continuity relies on the host runtime's native compaction, and observability consolidates on a single canonical trace stream.
CLI
mewkit memory validate— schema-validate the curated memory stores;--strictexits non-zero on errors.mewkit memory seed-from-md— populate the JSON stores from existing Markdown topic files, run once after upgrading.mewkit memory render-views— regenerate the human-readableviews/*.mdfrom the canonical JSON.mewkit verdict-gate <slug>— validate a review verdict's machine-readable proof bundle; blocks on a blocked, invalid, or missing verdict.mewkit doctor --statenow reports curated-memory health alongside the runtime-state checks.
Features
- Memory consumers read the
.jsonstore first and fall back to Markdown only when it is absent, warning when the two diverge. - Security findings are now a curated JSON store —
security-findings.json. mk:reviewemits a schema-validatedtasks/reviews/<slug>-verdict.jsonproof bundle alongside the human verdict.
Improvements
trace-log.jsonlis documented as the single canonical event stream — reader-less debug telemetry is gated behindMEOWKIT_HOOK_DEBUG.- Generated Markdown views carry a "generated — do not edit" banner so the JSON stays the source of truth.
Removals
- Removed the conversation-summary subsystem — the
/mk:summarycommand, the summary cache hook, and theMEOWKIT_SUMMARY_*environment variables are gone, and long-session continuity is now handled automatically by the host runtime's native compaction. - Removed the inert
cost-meter.shhook — per-call cost tracking is handled by the budget tracker. - Removed the archived
lessons.mdand deprecatedpatterns.jsonstubs.
Migration Notes
npx mewkit upgradeto pick up the new memory layout.- Run
mewkit memory seed-from-mdonce to migrate existing Markdown memory into the JSON stores. - If you relied on
/mk:summaryor anyMEOWKIT_SUMMARY_*variable, remove them — continuity is now automatic.
2.9.11 (2026-05-24) — Plan-creator mode clarity
Highlights
Plan creation now has clearer mode and flag boundaries. --deep is documented and wired as bounded phase-scoped planning, while --tdd remains an independent opt-in flag for regression-first execution handoff.
Improvements
mk:plan-creator --deepnow documents bounded scope maps and per-phase Deep Phase Maps instead of implying unrestricted repository scanning.mk:plan-creator --tddnow documentstdd: true,regression_gate,Tests Before,Protected Change,Tests After, andRegression Gateas the regression-first phase contract.- TDD handoff now keeps strict execution explicit by printing cook commands with
--tddwhen the plan was created with TDD enabled. - Cook now warns when a plan contains TDD markers but execution starts without
--tddorMEOWKIT_TDD=1. - Scout, brainstorming, and planning boundaries are clearer: scout finds context, brainstorming chooses an approach, and plan-creator turns a concrete approach into executable phases.
- New Core Concepts page "Plan Creator Modes and Flags" explains planning cost, context impact, mode selection, composable flags, lifecycle boundaries, examples, migration notes, and anti-patterns.
- Plan-creator reference docs now describe
--deepand--tddusing the same bounded, runtime-neutral terms as the skill implementation.
Migration Notes
- Use
npx mewkit upgradeto pick up the updated skill contracts and docs. - Keep using
/mk:plan --deep --tddonly when both risks apply: broad scope and existing behavior that must be preserved. - If a TDD plan prints a cook command with
--tdd, run that exact command so RED-first execution is enforced.
2.9.10 (2026-05-23) — Skill portability + cook context-engineering + provider diagnostics
Highlights
Three workstreams ship together. First, four skills (mk:docs-finder, mk:autobuild, mk:plan-creator, mk:scout) gain a meowkit: frontmatter block declaring portability policy (portability, providers, requires.{surfaces,commands,env}, context_cost) — the first-pass schema that lets the migrate subsystem decide whether each skill can install onto a non-Claude provider. Second, the migrate CLI grows provider-contract diagnostics — a new provider-contract-diagnostics module surfaces support gaps per provider, wired into npx mewkit doctor --providers, npx mewkit doctor --state, and npx mewkit validate --portable; first-pass skill providers expand to Codex, Gemini CLI, Antigravity, and OpenCode in addition to Claude Code. Third, mk:cook gains three new context-engineering contracts — a scout-first contract at Phase 0 (3–6 bullet codebase summary surfaced before any clarifying question), an exact-requirements contract at Phase 1 (5 dimensions must be answered before plan-creator returns), and a no-side-effects regression-recovery pattern at Gate 2 (2–4 typed options presented to the user when a regression is surfaced instead of silently patching). All changes are additive — pre-upgrade plans, verdicts, sessions, and skills without the meowkit: block continue to work unchanged.
Features
meowkit:frontmatter block on skill SKILL.md — first-pass portability schema with fieldsportability(generic/provider-adapted/provider-only),providers.{include,exclude},requires.{surfaces,commands,env}, andcontext_cost(low/medium/high). Parsed byparsePortabilityPolicy()inskills-discovery.tsand consumed byportability-policy.tsto decide install eligibility per provider. Skills without the block continue to migrate under the existing pre-policy heuristics.- First-pass skill providers —
portability-policy.tsenables skill installation for Codex, Gemini CLI, Antigravity, and OpenCode in addition to Claude Code. Skills withproviders.include: [claude-code]only continue to install for Claude Code; other providers receive aPortabilitySkipwith reason "needs review before non-Claude install". - 4 first-pass skills carry the new metadata —
mk:docs-finder(provider-only, claude-code, surfaces: [skills], commands: [Bash], context_cost: medium),mk:scout(provider-only, claude-code, commands: [Agent, Grep, Glob], context_cost: medium),mk:plan-creator(provider-only, claude-code, commands: [Agent, AskUserQuestion, Bash], context_cost: high),mk:autobuild(provider-only, claude-code, commands: [Agent, AskUserQuestion, Bash], env: [CLAUDE_PROJECT_DIR], context_cost: high). - New module
migrate/provider-contract-diagnostics.ts— collects provider-support diagnostics withpass/warn/failseverities, exposescollectProviderContractDiagnostics()+summarizeProviderContractDiagnostics(). - New cook contracts — Scout-First Contract (Phase 0 codebase-summary presentation) and Exact-Requirements Contract (Phase 1 plan-creator must answer expected output / acceptance criteria / scope boundary / non-negotiable constraints / touchpoints), with skip-on-plan-path notes. Plan-creator SKILL.md gained a matching Requirements Capture Contract section enumerating the 5 dimensions and the scout-grounded-options rule.
- New cook regression-recovery contract —
Side Effects Detected: Yesreviewer signal recognized byvalidate-gate-2.sh. Blocks Gate 2 until a## User Decision Addendumblock (User selected:+Resumption point:) is appended. Positive-presence-only — absence of the field is never a block signal, so pre-upgrade verdicts validate unchanged. - New "Regression Recovery Options" subsection in
mk:cook/references/review-cycle.md— 5-step procedure with 4 standard options (revert + re-plan / keep + update dependents / compatibility shim / accept the regression). - New top-level shared rule
.claude/rules/anti-rationalization.md— generic implementation-phase rationalizations migrated frommk:cook/SKILL.md, which retains a 1-row TDD-specific extension.
CLI
npx mewkit doctor --providers— runs provider-contract diagnostics alongside the standard doctor checks. Wraps the newcollectProviderContractDiagnostics()output into the doctor report.npx mewkit doctor --state— emits state-taxonomy diagnostics.npx mewkit validate --portable— adds portable-provider contract checks to the validate pipeline.- Top-level CLI help (
mewkit --help) now lists the three new flags above.
Improvements
mk:cook/SKILL.mdWorkflow Modes table demoted from 5 columns to 3 (Mode / Research / TDD) — canonical 6-column mode-behaviors matrix lives inmk:cook/references/intent-detection.md. Gate 2 absolutism statement collapsed to a 1-line callback to.claude/rules/gate-rules.mdacross SKILL.md, intent-detection.md, workflow-steps.md (review-cycle.md preserved inline for iteration-loop context).- TDD column labels unified to
RED-strict/Plan-level/Skipacross cook SKILL.md, intent-detection.md, workflow-steps.md. - Phase 5 ship subagent renamed in cook SKILL.md, workflow-steps.md, and subagent-patterns.md from
git-manager via mk:shiptoshipper via mk:ship— shipper orchestrates the full pre-ship pipeline and invokes git-manager internally. mk:cook/references/subagent-patterns.mdgained a Standard Delegation Skeleton (9-field block perorchestration-rules.md) at the top and aScope: pass X / do NOT pass Yannotation on each of the 13 template sections (isolation-boundary contract perorchestration-rules.mdIsolation Boundaries).validate-gate-1.shruns as an advisory preflight in non-auto cook modes (surfaces structural-check failures to the user before Gate 1 prompt; user retains override) and remains a blocking gate in--automode.- Cook SKILL.md Mermaid diagram edge labels quoted (
|"--verify"|,|"--strict"|) for renderer compatibility. mk:cook/references/failure-catalog.mdgained 4 new failure modes — skipped scout summary, vague clarifying questions, scout-first gate fired on plan-path input, silent patch on review-detected regression.migrate/portability-policy.tswidens skill-skip signal detection —.claudepaths,CLAUDE.mdreferences,mk/meowslash commands, Claude env vars, Anthropic env vars, and orchestrator-semantics references all trigger skip-with-reason when migrating to non-Claude providers.core/smart-update.tsandcore/compute-checksums.tsrefined for the new portability flow.migrate/migrate-orchestrator.tsintegrates the new portability policy + diagnostics path.
Bug Fixes
- USD pricing on cook
--verify/--strictflags removed from cook SKILL.md, intent-detection.md, workflow-steps.md — replaced with[LIGHT]/[HEAVY]relative-cost labels and a one-line variability note (concrete cost depends on inner harness, model tier, and target surface). - Inner-harness Mermaid rendering preamble removed from cook SKILL.md (diagram authority is independent of rendering fidelity).
- Phase 4.5 subagent column reframed from
agent-browser or curltobrowser-automation subagent or HTTP verification tool— concrete subagent name depends on installed skill set. - ToC anchors in
mk:cook/references/workflow-steps.mdandsubagent-patterns.mdupdated to match renamed Gate 2 / Phase 4.5 / Ship section headers.
Migration Notes
npx mewkit upgradeto pick up the new gates and CLI flags.- Skills WITHOUT a
meowkit:frontmatter block continue to migrate under existing pre-policy heuristics — no immediate action required. To opt-in to first-pass portability, add ameowkit:block declaringportability,providers,requires, andcontext_cost; see the 4 first-pass skills for examples. - New cook gates (scout-first, exact-requirements) apply only when starting from a fresh task description. Plan-path invocations (
/mk:cook tasks/plans/.../plan.md) skip both gates explicitly. - The new validate-gate-2.sh side-effect signal is positive-presence-only — existing verdicts without
Side Effects Detected: Yescontinue to pass unchanged.
2.9.9 (2026-05-23) — Plan-creator determinism + handoff
Highlights
mk:plan-creator gains a deterministic post-approval handoff and two consistency-sweep gates so red-team and validation-interview edits cannot leave the rest of the plan inconsistent. After Gate 1 + task hydration, the skill fires an AskUserQuestion whose options are pruned to the gates not already auto-run in the active mode (cook / validate / red-team / harness / end), writes the choice to plan.md frontmatter as a typed enum, and STOPs without auto-invoking. The validator now rejects unknown handoff.next values. Static AskUserQuestion JSON in seven step / reference files becomes a "Recommend When" decision table; runtime-templated payloads stay as JSON because they carry substitution variables a table cannot express.
Features
- New step file
step-09-post-plan-handoff.md— runs after task hydration. Mode-pruned options (≤4), live risk re-scan over plan content forrisk-checklist.mdtrigger keywords, defensive fallback advisory whenmatched_flagsis unset, writeshandoff: { next, decided_at }toplan.mdfrontmatter. - New gates Whole-Plan Consistency Sweep — Gate W1 at the end of
step-05-red-team.md, Gate W2 at the end ofstep-06-validation-interview.md. Stage-then-apply algorithm: read-only Pass 1 stages### Pending Sweep Editsblock; decision check blocks on unresolved contradictions viaAskUserQuestion; write Pass 2 applies edits, writes summary, updatesconsistency_sweeps.{red_team|validation}frontmatter. Recursion bound: 2 resolve attempts per gate. Seereferences/whole-plan-sweep.md. - New step-04 sub-step Verification Roles — Fact Checker / Flow Tracer / Scope Auditor / Contract Verifier dispatched as READ-ONLY parallel
Exploresubagents, tier auto-selected by phase count (Light 1–2 / Standard 3–4 / Full 5+). Orchestrator aggregates verdicts and writes ONE## Verification LogEdit per phase file. Skipped in fast / product-level modes. FAILED claims surface as targeted step-06 interview questions. Seereferences/verification-roles.md. validate-plan.pyenforceshandoff.nextenum when thehandoff:frontmatter block is present. Plans withouthandoff:continue to validate..plan-state.jsonv1.2 — additive schema bump adding optionalverification_tierandconsistency_sweeps_passed. v1.1 readers ignore unknown keys; v1.2 readers default missing keys.
Improvements
- Seven static
AskUserQuestionJSON blocks acrossstep-00-scope-challenge.md,step-07-gate.md,references/gate-1-approval.md, andreferences/archive-workflow.mdconverted to "Option / Recommend When / Why" decision tables matching theck-planPost-Plan Handoff pattern. Runtime-templated and looped payloads (per-finding loop, file-content embedding, fully generated question text) stay as JSON. references/phase-template.mddocuments## Verification Logand## Validation Logas machine-written, optional sections; hand-edit anti-pattern added.references/gate-1-approval.mdContext Reminder block moved from step-07 to step-09 (fires AFTER the user picks a next-step option, not on Gate 1 approval); contradictory step-07 instruction reconciled.
Migration Notes
- Legacy plans without
handoff,consistency_sweeps,## Validation Log, or## Verification Logcontinue to validate asPLAN_COMPLETE. No migration tool required. - Fixtures live at
tests/fixtures/plan-creator/covering legacy / modernized / partial / interrupted-sweep / handoff-invalid-enum states; runnable viabash tests/fixtures/plan-creator/validate-fixtures.sh.
2.9.8 (2026-05-23) — Memory system deep fix
Highlights
Four verified failures in the memory pipeline removed: last-model-id.txt now persists the real model id, /mk:fix reliably writes its Step 6 entry, the ##pattern: / ##decision: / ##note: capture surface is finally documented as a user-typed keyboard shortcut (the handler never fired on agent output), and analyst.md writes to the v2.4.1 split topic files instead of the deprecated patterns.json / lessons.md stubs.
Bug Fixes
last-model-id.txtalways wroteunknown—post-session.shwas reading env vars (CLAUDE_MODEL,MEOWKIT_MODEL_HINT,ANTHROPIC_MODEL) that Claude Code never exports to Stop-hook subprocesses. Newhooks/lib/resolve-model.shresolves the model id fromsession-state/detected-model.json(the canonical source) with env-var fallback.cost-log.jsonentries andtrace-log.jsonlsession-end events now carry the real model id./mk:fixStep 6 memory write path is now enforced — the command spec previously had no memory write instructions andPhase 6 / Reflectonly ran in/mk:cook. New entries land in bothfixes.mdandfixes.json(withfrequency: 1and today'slastSeen).- Agent files instructing
##pattern:/##decision:/##note:capture were architecturally broken — the handler is bound toUserPromptSubmitand never fires on agent output. 41 files patched (23 agents + 16 skills + 1 command +docs/memory-system.md) to use directEditcalls instead. Existing user-typed##prefix:flow is unchanged. analyst.mdagent wrote topatterns.json(deprecated stub) andlessons.md(archived stub) — Phase 6 entries were functionally lost. Now targetsfixes.{json,md},review-patterns.{json,md},architecture-decisions.{json,md}per the v2.4.1 schema.
Improvements
- New reference doc
.claude/skills/memory/references/capture-architecture.md— the canonical 2-path contract describing user-typed##prefix:vs agent-authored directEdit. Referenced from every patched agent and skill. docs/memory-system.md§3a clarified that the##prefix:handler does NOT fire on agent output; new §3d added describing the agent-direct write path; §8 tombstone gains rows for "Agent-output##prefix:as API" and "patterns.json/lessons.mdas active write targets".mk:memorySKILL.md gains a "How session-capture is invoked" section clarifying the routine is prose-driven (the agent readsreferences/session-capture.mdand follows its steps viaEdit) — there is nomewkit memory session-captureCLI subcommand.- New
tests/resolve-model.test.sh— 7 cases covering happy path, missing file, malformed JSON, literal "unknown" fall-through, env-hint override, file-wins-over-env precedence, and shell-metachar sanitization. - New
tests/spec-drift.test.sh— regression gate ensuring no agent/skill/command file re-introduces##prefix:as an agent-output instruction or writes to the deprecatedpatterns.json/lessons.mdstubs.
Removals
patterns.jsonandlessons.mdremain on disk as gravestone stubs; their write-target status was already removed in v2.4.1 and is now also enforced viaspec-drift.test.sh. Scheduled for deletion in v2.12.0 — external skills writing to either should migrate to the split topic files before then.
2.9.7 (2026-05-16) — Docs reference contract + validator
Highlights
.claude/ shipped into downstream projects used to leak path references into the kit's own internal docs (docs/dead-weight-audit.md, docs/red-team-overview.md, docs/memory-system.md, etc.) that do not ship via the release zip. This release formalizes the two-tier docs-reference contract, patches every leaked path, and adds a validator that prevents future regressions. Downstream projects no longer carry broken cross-references inside their installed .claude/.
CLI
npx mewkit validate— new check: "Docs references on Type-1 allowlist". Walks every shipped.claude/subdir, extractsdocs/<path>references, and verifies each against the Type-1 allowlist in.claude/rules/docs-reference-contract.md. Exit code 1 on any error.
Features
- New rule
.claude/rules/docs-reference-contract.md— codifies the two-tier resolution model (target-project docs vs kit-internal docs), the Type-1 allowlist (parsed from a fenced<!-- ALLOWLIST-START -->block as the single source of truth), and the skill-author checklist. - New rule
.claude/rules/dead-weight-audit-rules.md— 8 numbered rules covering audit cadence, the benchmark-driven measurement process, decision thresholds (PRUNE / WATCH / KEEP), components that never prune, anti-patterns, and the circular-dependency workaround when the harness itself is under test. - New rule in
skill-authoring-rules.mdRule 5 — Docs References Follow the Two-Tier Contract; enforced mechanically by the validator. - New CI step
Validate docs references on Type-1 allowlist— runspython3 .claude/scripts/check-docs-references.py .claudeon every PR. - New CI step
Unit-test docs-references validator— runs the 15-case parser/matcher test suite.
Improvements
- 14 path references inside
.claude/were re-pointed at in-kit rule files or inlined directly into the consuming context — coversbenchmark/SKILL.md,harness/references/adaptive-density-matrix.md,harness-rules.md,agents/reviewer.md,commands/mk/summary.md,memory/architecture-decisions.md,hooks/HOOKS_INDEX.md,scripts/lint-brand-prose.sh,benchmarks/README.md, three attribution citations (prompt-enhancer, elicit, jira), and one template placeholder (plan-creator/references/phase-template.md). - Five false-positive source rewrites cleaned up: slash-separated category list in
scale-routing/SKILL.md, CSV example inlazy-agent-loader/SKILL.md, example filename inagent-browser/references/video-recording.md, attribution prose injira-issue/references/issue-templates.md, heading text inplan-ceo-review/references/post-review.md, plus two scheme-prefixed URL fixes inhooks/HOOKS_INDEX.mdandhooks/lib/read-hook-input.sh. - Phase-template placeholder
../../../docs/relevant-doc.mdbecomes<path-to-related-doc-in-your-project>so new phase files emit a clean placeholder by default.
Removals
- Bare
docs/relevant-doc.mdfrom the Type-1 allowlist — the phase-template now uses an angle-bracket placeholder, so the literal allowlist entry is no longer needed. No migration action required.
2.9.6 (2026-05-16) — Context isolation: SessionStart budgeting, agent-detector sentinel, memory auto-prune
Highlights
SessionStart and per-message context costs cut without changing the safety contract. docs/project-context.md gains a byte cap before injection; the agent-detector skips its 10-file rule re-read on turns 2..N via a session-scoped sentinel; memory .md topic files auto-prune entries older than 90 days on Stop. Combined: ~9,700 tokens saved per turn after turn 1 on a typical session, plus a hard cap at SessionStart on repos with oversized project-context.md.
New Commands
/mk:delegate— assembles a context-isolated subagent prompt from theorchestration-rules.mdtemplate. Wizards through 7 required fields, runs an injection-pattern guard on each user-provided field, and emits a ≤200-token prompt block for review before the Task tool is invoked.--silentmode skips the interactive wizard for inner harnesses that do not supportAskUserQuestion. Distinct frommk:spawn(which launches parallel agents in isolated worktrees).
Features
- Env var
MEOWKIT_MAX_PROJECT_CONTEXT_BYTES— pre-injection byte cap ondocs/project-context.mdat SessionStart. Default12288(~12 KB ≈ ~3K tokens). Files over the cap are truncated with a visible warning beforecat; files over 2× the cap emit a stronger warning.0disables the cap entirely. - Env var
MEOWKIT_SKIP_SAFETY_SENTINEL— controls the agent-detector cached-marker optimization. Defaultonskips the 10-file safety + phase-zero rule Read on turns 2..N of a session.offforces the full check every turn. - Env var
MEOWKIT_MEMORY_PRUNE— auto-prune of stale.mdtopic-file entries on Stop. Defaulton. Entries older than 90 days with a parseableYYYY-MM-DDheader date are removed; entries withseverity: criticalorseverity: securityare NEVER pruned; entries without a parseable date are NEVER pruned (protects manual notes). - Env var
MEOWKIT_MEMORY_PRUNE_AGE_DAYS— overrides the 90-day cutoff for memory auto-prune. - Memory directory size audit —
project-context-loader.shnow reports any.claude/memory/*.mdfile exceeding 500 lines in the agent-readiness banner.
Improvements
orchestration-rules.mdgains three new sections — Isolation Boundaries (5-row table of what crosses each layer and what does NOT), Inner Harness Compatibility (capability matrix: Task tool surface, context auto-injection root, SubagentStart hook availability), and Rejected Patterns (deliberate non-implementations with reasoning).mk:agent-detectorstep-0 and step-0b first scan the context window for a cached-sentinel marker before invoking the 10-file Read loop. The marker is emitted by a newUserPromptSubmithandler when a session-scoped JSONL log records both flagssafetyandphase_zeroas true. The skill remainsallowed-tools: [Read]— all filesystem ops live in hook context.post-session.shmodel-change detection now writes## YYYY-MM-DD — dead-weight-audit-needed (auto-flagged)headers so the auto-prune script can parse and eventually rotate them.- Single state file
session-state/session-sentinels.jsonlreplaces per-session-ID sentinel files. Truncated on session change. session-state/prune-log.mdrecords pruned counts as{file} | {date} | {N} entries pruned— no entry content, breaking theinjection-rules.mdRule 11 carrier chain for memory data.
2.9.5 (2026-05-14) — mk:worktree script backing and new commands
Improvements
mk:worktreeis now backed by a Node.js CLI (scripts/worktree.cjs+scripts/lib/worktree-git-helpers.cjs). All 6 commands emit structured JSON (--json) and support--dry-runfor safe previewing.- New
statuscommand: health audit of all active worktrees showing ahead/behind divergence and dirty state for each. - New
prunecommand: removes stale.git/worktrees/metadata left by manually-deleted worktrees; always dry-run first. - New
--orchestratedflag oncreate: places the worktree at.worktrees/{agent-name}on aparallel/{agent-name}-{timestamp}branch perparallel-execution-rules.mdRule 3. - New
references/commands.md: full option tables, JSON field docs, and error code reference for all 6 commands. - SKILL.md updated to document all 6 actions with script invocations, a
## Gotchassection, and compliance withskill-authoring-rules.md.
2.9.4 (2026-05-11) — Agent rules and TOON agent docs
Improvements
- Added a docs reference for MeowKit agent rules covering status handoffs, context loading, agent naming, search-before-building, and file ownership.
- Converted uniform
.claude/agentsmatrices to TOON blocks so agent registries, operations tables, safety tiers, and review checklists stay compact without changing their stated values. - Updated release documentation to include the 2.9.4 release entry.
2.9.3 (2026-05-11) — Optimize rules
Apply Token-Oriented Object Notation (TOON) to rules. Dropped ~26,288 → ~23,234 tokens (~3,054 saved, 11.6%)
2.9.2 (2026-05-11) — Spec-to-tech-breakdown orchestrator
Highlights
/mk:breakdown ships as a thin skill-composing command that takes any spec source — Confluence URL, Jira KEY, GitHub issue, Linear ticket, file, or paste — and produces refined user stories, optional per-story Jira tickets, and a codebase-aware tech breakdown report. Stops cleanly before plan creation so the user runs /mk:plan later with the report as context. Closes the manual 4-skill chaining gap between spec analysis and planning.
New Commands
/mk:breakdown <source> [--source <type>] [--project <KEY>]— orchestratesmk:confluence-spec-analyst(ormk:intakefor non-Confluence sources) → story decomposition → per-storyAskUserQuestiongate →mk:jira-issue createper acceptance →mk:planning-engine plan --tickets→ consolidatedtasks/reports/breakdown-{YYMMDD}-{slug}.md. Per-story options: Create / Edit-then-create / Skip / Skip-all-remaining. HonorsEXT_SYSTEMgate — human confirmation precedes every Jira write.
Improvements
/mk:meowStep 2 heuristics table routes "break down spec", "decompose spec", "spec to stories", andbreakdown <source>phrasing to the new command.- Footer logic emits one of five state-specific next-action messages — covers Jira-not-configured,
--projectmissing, partial spec (Confluence child-page failures), tech breakdown skipped, and the happy path with cross-link to the planning report.
2.9.1 (2026-05-11) — Brand-prose neutralization for migrate targets
Highlights
mewkit migrate codex|kiro|cursor now strips narrative "MeowKit" / "Claude Code" / non-citation "Anthropic" prose at converter time and substitutes the target name. The merged Codex/Kiro AGENTS.md header no longer leaks "MeowKit" branding. Toolkit identifiers (mk:, MEOW_*, npx mewkit, hook event names) stay verbatim. A markdown-only lint guard prevents source regressions, gated in CI on every PR.
CLI
md-stripconverter accepts a newtargetNameoption and substitutes "Claude Code" → target display name when set (e.g. "Codex", "Kiro IDE", "Cursor"); falls back to "the host runtime" otherwise.fm-stripmerged-agents header rewritten —> Ported from the toolkit via mewkit migratereplaces the hardcoded "MeowKit agents" string.- Citation-aware skip preserves
<!-- research-citation -->marker,research/thesiskeyword windows, and blockquote-style citations. - All
stripClaudeRefscallers (md-to-mdc,md-to-kiro-steering,fm-strip) now pass the provider display name through.
Features
- New lint guard
.claude/scripts/lint-brand-prose.sh(orchestrator) +.claude/scripts/check-anthropic-context.py(single source-of-truth check) — runs in under 1 second on the full tree. - CI step
Lint brand prose in .claude markdownblocks PRs that reintroduce banned narrative prose. - New
.claude/.brand-allowlist.txtfor toolkit-internal index/log headers, with a 30-entry ceiling. - New
docs/branding-style-guide.md— single-page reference with before/after examples and the documentedOn Claude Code, …factual-prefix form.
Improvements
- Source cleanup across
.claude/markdown — narrative "MeowKit" / "Claude Code" prose neutralized in rules, skills, commands, hook references, and benchmark canaries. ~47 hits rewritten. - Code emitters
statusline.cjs,scripts/memory-migrator.cjs, andhooks/project-context-loader.shuse neutral strings instead of "MeowKit" in user-visible output. - One non-citation "per Anthropic's documented behavior" phrase in
rules/skill-authoring-rules.mdrewritten to "per the runtime's plugin contract".
2.9.0 (2026-05-11) — Pre-ticket story sizing
Highlights
mk:story-sizer ships as MeowKit's first pre-ticket sizing skill — accepts a paste-mode markdown block of stories, produces per-story Fibonacci complexity + rough sizing, and optionally batch-creates tickets via mk:jira-issue and mk:jira-collaborate (--internal audit comments) with mandatory dry-run + single confirmation gate. Closes the spec → ticket-creation gap without violating the "AI provides signals, humans decide" design. v1 ships paste-only; spec/intake adapters are deferred.
New Skills
| Skill | Purpose |
|---|---|
mk:story-sizer | Pre-ticket per-story Fibonacci sizing from paste-mode input. Default read-only; opt-in --auto-create with mandatory batch dry-run + single confirmation. |
New Agents
story-sizer— Heuristic complexity + Fibonacci scoring agent. Read-only at the Jira side — delegates create/comment tomk:jira-issueandmk:jira-collaborate.
Features
--pasteinput adapter with strict markdown template and per-story AC validation.- Optional
--scoutextracts codebase context from session (matchesmk:planning-engineextract-or-prompt pattern; never auto-invokes). - Advisory split detection for stories sized 13+ points.
- Audit comments use
--internalflag onmk:jira-collaborate add-comment(team-only, not customer-facing). - Audit comment template customizable via
MEOWKIT_STORY_SIZER_COMMENT_TEMPLATEenv var. - Workflow page updated —
spec-to-pr-walkthroughgains Step 3.5.
Improvements
- The 10-step Spec → PR walkthrough now has a concrete pre-ticket sizing step, not just a feasibility-scan handwave.
2.8.7 (2026-05-11) — Agile/Scrum Rule Layer
Highlights
Adds a thin, conditionally-loaded Agile/Scrum governance layer covering Definition of Ready, Definition of Done with Jira sync, sprint-goal persistence, mid-sprint amendment ceremony, sprint-close hygiene, retro→action loop, and time-boxed spike governance. Three rules in .claude/rules-conditional/agile-*.md load via mk:agent-detector Step 0b ONLY when an Agile context is detected. Non-Agile sessions pay zero context cost — no new agents, no new hooks, no new gates.
New Conditional Rules
| Rule | Purpose |
|---|---|
agile-story-gates.md | DoR (Phase 1 entry) + DoD (Gate 2 PASS) + traceability frontmatter contract |
agile-sprint-commitment.md | Sprint goal persistence, mid-sprint amendment ceremony, sprint close hygiene |
agile-feedback-cycle.md | Retro action-item ceremony, spike governance (timebox + findings doc) |
Skill Integrations
mk:plan-creator— DoR advisory at Phase 1 entry; new--spike --timebox <duration>flag with two-phase spike template (assets/spike-plan-template.md); rejects--spike --product-leveland--spike+mk:autobuildFULLmk:sprint-contract— newsprint-goalsubcommand (set/show/align) writing totasks/contracts/sprint-state-{date}-sprint-{N}.mdwithflockdiscipline; newassets/sprint-state-template.mdmk:retro— post-narrative action-item ceremony parsing## 3 Things to Improveand## 3 Habits for Next Week; per-item AskUserQuestion (Create Jira story / Add to plan TODO / Document as no-action / Defer)mk:jira-agile—sprint add/removepost-start:flock+ amendment append + reason prompt;sprint close: per-ticket disposition prompt + closure summarymk:ship— Gate 2 PASS path early-return guard (preserves zero-cost for non-Agile) + 3 opt-in DoD prompts (verdict→Jira comment, status transition, business AC checkbox); covers themk:cook→mk:shipchain in one insertionproject-manageragent — Jira-aware status enrichment via singlemk:jira-searchJQL aggregation when Agile context active
Agile Context Detection (OR-logic)
Any one match triggers load of all 3 rules at mk:agent-detector Step 0b:
- Glob
tasks/contracts/sprint-state-*-sprint-*.mdreturns ≥1 result - Active plan frontmatter has non-empty
jira_tickets: MEOW_JIRA_BASE_URLenv var set- Last user message matches
[A-Z]{2,10}-\d+
Pre-flight check defends against drift: if .claude/rules-conditional/ directory is absent, the load is skipped silently.
Architecture Notes
- Plan-as-source-of-truth retained; Jira receives projections only (verdict comment, status transition) — never authoritative
- Sprint-state contract path uses leading
sprint-state-prefix to prevent glob collision with the existingcheck-contract-signed.shglob - Spike plans are INCOMPATIBLE with
mk:autobuildFULL density (harness gate breaks); usemk:cookormk:plan-creator --fast - Concurrent-write safety:
mk:jira-agileandmk:sprint-contract sprint-goal setMUST acquireflockbefore any read-modify-write on sprint-state files
ADR: docs/architecture/adr/260511-agile-scrum-conditional-rule-layer.md. Plan: plans/260510-2333-agile-scrum-rule-layer-design/.
2.8.6 (2026-05-10) — Align rules
Improvements
- Generalized generated runtime assets and aligned rule prose across
.claude/rules/,.claude/agents/, and.claude/commands/mk/so wording, role labels, and cross-references match the post-2.8.5 namespace and folder layout.
2.8.5 (2026-05-10) — Rules Folder Reconsolidation + mk:preview
Highlights
Two threads land together. The five Phase-Zero conditional rule files move back into .claude/rules/, simplifying the rule-availability validator and the upgrade orphan-cleanup pass. Alongside that, mk:preview ships as a native MeowKit visual generator — markdown and self-contained HTML for explanations, diagrams, slide decks, git diffs, and plan rendering — with a mandatory theme toggle, anti-slop guarantees, and zero new package dependencies.
New Skills
| Skill | Purpose |
|---|---|
mk:preview | Generate visual artifacts — markdown or self-contained HTML — for explanations, diagrams, slide decks, git diffs, and plan rendering. Display only; not for plan critique. |
Features
- 9 modes total — 4 markdown (
--explain,--diagram,--slides,--ascii) + 5 HTML (--html --explain,--html --diagram,--html --slides,--html --diff,--html --plan-review). - Mandatory theme toggle on every HTML artifact, persisted via localStorage with OS-preference fallback on first load.
- Zoom and pan engine for diagram pages — mouse wheel cursor-anchored zoom, drag pan, keyboard
+ − 0. - Slide engine for
--html --slides— scroll-snap + IntersectionObserver + arrow-key nav + bottom progress dots. - Plan-aware output paths —
tasks/plans/{slug}/visuals/when an active plan exists,tasks/visuals/fallback. Readssession-state/active-plan; handles both absolute-path and slug formats; falls back loudly with stderrwarn:. - Style rotation — palette and typography vary per run via
${CLAUDE_PLUGIN_DATA}/preview/style-rotation.json; deterministic-hash fallback when env var is unset. - 4 clean-room HTML templates in
assets/— architecture, mermaid-flowchart, slide-deck, data-table — each carrying a clean-room provenance comment. - New embedded reference
references/mermaid-essentials.md(≤ 120 lines) — pinned Mermaid v11.4.1, init pattern,.nodeclass trap, layout-direction guidance, color rules. Loaded by 4 other Mermaid-emitting skills via a one-line directive (mk:cook,mk:plan-ceo-review,mk:problem-solving,mk:jira-relationships). --html --diffPR mode pipesgh pr diffthrough.claude/hooks/lib/secret-scrub.shbefore HTML interpolation; topic strings are HTML-encoded per element / attribute / CSS / JS context.
Improvements
- The five Phase-Zero conditional rule files (
agent-routing.md,model-selection-rules.md,phase-contracts.md,risk-checklist.md,scale-adaptive-rules.md) move from.claude/rules-conditional/back to.claude/rules/. They keep the same Phase-0 conditional load semantics (read explicitly bymk:agent-detectorStep 0b — NOT auto-loaded by Claude Code's directory mechanism), but live alongside the always-on rules so the orphan-cleanup pass and the rule-availability validator see them as a single tree. scripts/validate-rule-availability.shregex simplified — drops the(-conditional)?group now that the legacy path is gone.mk:cook,mk:plan-ceo-review,mk:problem-solving,mk:jira-relationshipseach gain a one-line directive pointing atmk:preview/references/mermaid-essentials.mdbefore any Mermaid emission.SKILLS_INDEX.mdregistersmk:previewunder "Cross-Cutting (Any Phase)".
Bug Fixes
mewkit upgradeorphan-cleanup pass was blind to.claude/rules-conditional/—DEFAULT_ORPHAN_SCOPESonly listedrules,skills,agents,hooks. After this release, the scope list also coversrules-conditionalas a one-time migration sunset, so users upgrading from v2.8.3 / v2.8.4 get the legacy directory flagged and removed on the next upgrade. New regression test intests/find-orphans.test.tslocks the behaviour.
Migration Notes
- Run
npx mewkit upgradeto pick up the merged layout. The orphan-cleanup pass will detect leftover files under.claude/rules-conditional/and prompt to delete (skip with--no-cleanup).
2.8.4 (2026-05-10) — Confluence Ecosystem + Macro-Aware Spec Analysis
Highlights
mk:confluence returns as a 6-skill ecosystem (1 hub + 5 leaves) backed by the confluence-as CLI. The differentiator is mk:confluence-spec-analyst — it fetches pages as ADF (atlas_doc_format) and pipes the body through a new macro-aware walker so panels, decisions, task lists, mentions, expand sections, and Smart Link / Figma embeds survive as explicit markdown labels (> [INFO], > [DECISION], - [ ], <details>, @name, ). Macro labels become first-class signals for downstream gap detection. The 2.8.3 removal is reversed: there is now a first-party Confluence read path, with mk:planning-engine --spec consuming the resulting Spec Research Report.
New Skills
| Skill | Purpose |
|---|---|
mk:confluence | Pure routing hub — recommends the right mk:confluence-* leaf; never executes. |
mk:confluence-page | Single-page CRUD via confluence-as plus hierarchy traversal, version restore, and copy / move. |
mk:confluence-search | CQL queries, validation, space listing, saved-filter management, and export — with mandatory user-input sanitization. |
mk:confluence-spec-analyst | Read-only deep spec analysis — produces a structured Spec Research Report consumed by mk:planning-engine. |
mk:confluence-bulk | Bulk-label / bulk-move / bulk-delete on 10+ pages with mandatory 3-step dry-run ceremony. |
mk:confluence-collaborate | Comments, attachments, labels, watchers — folds 4 upstream skill domains into one footer-default agent. |
New Agents
confluence-page— Page CRUD + hierarchy + version + copy/move agent.confluence-search— CQL search + saved-filter agent with unconditional sanitization.confluence-spec-analyst— Read-only spec analyst with macro-aware ADF fetch path and persisted reports.confluence-bulk— Bulk operations agent with mandatory dry-run + typed-token confirmation.confluence-collaborate— Per-page collaboration agent (comments, attachments, labels, watchers) with footer-default discipline.
Features
- New macro-aware walker
confluence/scripts/adf-to-md.sh+adf_to_md.py— preserves panel / decisionList / decisionItem / taskList / taskItem / expand / mention / media / inlineCard / blockCard nodes with explicit ASCII labels. Two modes: stdin (pipe an ADF body) or--page-id <N>(single-call fetch via the wrapper). - Single-call fetch pattern in
mk:confluence-spec-analyst— extracts metadata + body from one ADF response, halving per-page API request count and staying inside the Cloud rate limit (10 req/s). - Per-child failure handling — root-page fetch failure aborts the run; child fetch failure appends
[INCOMPLETE: child <id>]and continues with the partial corpus. - Unknown ADF nodes emit
[UNHANDLED_NODE: <type>]with keys-only metadata — type name + sorted attribute keys, never raw text or attribute values. Closes the prompt-injection vector through custom macros. - Mention display names are escaped + scanned against the prompt-injection pattern list before emission; matched names are redacted to
[REDACTED_DISPLAY_NAME]. - New env vars
MEOW_CONFLUENCE_API_TOKEN,MEOW_CONFLUENCE_EMAIL,MEOW_CONFLUENCE_SITE_URLin.claude/.env. The wrapperscripts/confluence-as.shtranslates them toconfluence-as's nativeCONFLUENCE_*names per call and refuses any plaintext-credential fallback in.claude/settings.local.json. - Cloud-only gate — wrapper exits 3 on non-
*.atlassian.netURLs and points at the Atlassian MCP escape hatch. mk:planning-engineaccepts--spec <report-path>pointing at amk:confluence-spec-analystreport; the Planning Report gains a## Spec Contextsection.mk:intakerecognizes Confluence URLs (*.atlassian.net/wiki/spaces/...) and raw page IDs as a 5th source.- Walker fixture
meowkit/.claude/skills/confluence/scripts/tests/fixtures/adf-macros.json+adf-macros.expected.mdfor deterministic regression checks. - 11 new VitePress reference pages (5 agents + 6 skills) grouped under "Confluence Agents" and "Confluence (Router + Family)" in the sidebar.
Improvements
- Children traversal cap lowered from 10 to 5 in
mk:confluence-spec-analystto stay inside the Confluence Cloud per-user rate limit under the single-call-per-child pattern. - ADR
260510-mk-confluence-ecosystem-path-b.mdextended with an addendum documenting the macro-aware fetch path, the ADF coupling rationale, and why a 7thmk:confluence-convertskill was rejected (wrapping a lossy upstream function inherits the loss). confluence/references/cli-idioms.mdgains a "Local conversion helpers" section + macro label convention table.confluence/references/safety-framework.mdadds new failure-mode rows for the walker's exit codes and a sanitization-addendum note.confluence-spec-analyst/references/spec-analysis-patterns.mdgains 6 macro-label heuristics (decisions without rationale → INFO; task items without owner → GAP; panels with weasel words → AMB; mentions without context → INFO; media without alt → GAP;[UNHANDLED_NODE]→ Open Question).
Migration Notes
- Run
npx mewkit upgradeto pick up the new defaults — this auto-installsconfluence-assistant-skills(CLI distribution) into.claude/skills/.venvvia the existingrequirements.txt. - Populate
.claude/.envfrom.claude/.env.examplewith the threeMEOW_CONFLUENCE_*vars. - Reverse direction (md → adf) is deferred — no consumer in MeowKit currently calls
page update --representation atlas_doc_format --content-file <json>. Re-add when a real consumer surfaces. - The 2.8.3 removal advice ("use Atlassian MCP directly") is superseded —
mk:confluenceis the first-party path again.
2.8.3 (2026-05-10) — Jira Family + Workflow Discovery
Highlights
mk:jira becomes a pure router. Jira execution moves into 16 thin leaf skills — 13 domain plus 3 intelligence — each forking a dedicated agent in .claude/agents/. The Atlassian-MCP coupling is replaced with the jira-as CLI (auto-installed via npx mewkit setup). Workflow templates are no longer assumed: a new fetch-workflow.sh discovers each instance's actual statuses + transitions and caches them under tasks/jira-workflows/ for mk:jira-lifecycle, mk:jira-bulk, mk:planning-engine, and mk:jira-evaluator to consume.
New Skills
| Skill | Purpose |
|---|---|
mk:jira-issue | Single-issue CRUD via jira-as (create / get / update / delete). |
mk:jira-search | JQL queries + saved-filter management with mandatory user-input sanitization. |
mk:jira-lifecycle | Workflow transitions, assignment, resolution, version + component management. Cache-first. |
mk:jira-collaborate | Comments, attachments, watchers, notifications. Internal-vs-public confirm enforced. |
mk:jira-relationships | Issue links, blockers, dependencies, clone, bulk-link. |
mk:jira-time | Worklogs, estimates, time reports, bulk-log. |
mk:jira-agile | Epics, sprints, backlog, ranking, story points, subtasks, velocity. |
mk:jira-fields | Custom field discovery + agile field configuration. |
mk:jira-bulk | Bulk ops on 10+ issues with mandatory dry-run + workflow-cache validation. |
mk:jira-jsm | Service Management: 8 sub-domains (~45 verbs). Requires JSM license. |
mk:jira-admin | Project / user / group / scheme / automation administration. 11 sub-domains. |
mk:jira-dev | Developer artifact generation: branch-name, PR-description, smart-commits. |
mk:jira-ops | Diagnostic surface: cache-status / cache-clear / discover-project. |
mk:jira-evaluator | Read-only ticket complexity + inconsistency analysis. Persists report. |
mk:jira-estimator | Read-only heuristic story-point estimation. Auto-consumes evaluator output. |
mk:jira-analyst | Read-only full ticket context analysis incl. media. Persists structured RCA. |
New Agents
jira-issue— JIRA issue CRUD via thejira-aswrapper.jira-search— JIRA search + saved-filter management.jira-lifecycle— Workflow lifecycle with cache-first transition discovery.jira-collaborate— Comments, attachments, watchers, notifications.jira-relationships— Issue link / unlink / blocker / dependency / clone.jira-time— Time tracking + worklog management.jira-agile— Sprint / epic / backlog / story-point management.jira-fields— Custom field discovery + admin configuration.jira-bulk— Bulk operations with mandatory dry-run discipline.jira-jsm— JIRA Service Management across 8 sub-domains.jira-admin— Highest-blast-radius admin agent with 2-step token confirmation on destructive ops.jira-dev— Developer artifact generator (branch / PR / commit linking).jira-ops—jira-ascache + project-context diagnostics.jira-evaluator— Read-only complexity + inconsistency analysis (persists report).jira-estimator— Read-only heuristic story-point estimation (persists report).jira-analyst— Read-only ticket + media analysis (persists report).
Features
- New script
scripts/fetch-workflow.sh— discovers a project's actual workflow viaadmin workflow for-issue <KEY>(admin path) with non-admin fallback tolifecycle transitions <KEY>. Cache layout:tasks/jira-workflows/_schemes/<PROJECT>.md(project → workflow mapping) +tasks/jira-workflows/<workflow-slug>.md(full statuses + transitions). - New env vars
MEOW_JIRA_API_TOKEN,MEOW_JIRA_EMAIL,MEOW_JIRA_SITE_URLin.claude/.env. The wrapperscripts/jira-as.shtranslates them tojira-as's nativeJIRA_*names per call and setsJIRA_OUTPUT=jsonas default. - New SessionStart hook
jira-env-loader.sh— validates.claude/.envpresence + the 3 required keys; emits[mk:jira] env OK/[mk:jira] <KEY> missingto the status line. - New env var
CLAUDE_CODE_FORK_SUBAGENT=1set insettings.jsonenvblock by default — enablescontext: forksemantics for the 16 thin leaves. - New pip dependency manifest
meowkit/.claude/skills/jira/scripts/requirements.txt—npx mewkit setupauto-installsjira-as(and thejira-as[keyring]extra) into.claude/skills/.venv. - 32 new VitePress reference pages — one per leaf skill + one per agent — grouped under "Jira (Router + Family)" and "Jira Agents" in the sidebar.
- 30 high-signal references adopted from upstream
JIRA-Assistant-Skills(issue templates, JQL patterns, workflow patterns, comment templates, field-types reference, voodoo-constants, ITIL workflows, branch-naming + smart-commits guides) — all rewritten to use thejira-aswrapper instead of upstream Python scripts.
Improvements
mk:planning-engineandmk:intakeno longer reference Atlassian MCP — both now route through themk:jira-*family.mk:planning-enginegotchas +mk:intake/references/jira-{awareness,handoff-protocol}.mdupdated accordingly.- All 16
jira-*agents conform to MeowKit conventions:Required Context (MeowKit)block (loadsdocs/project-context.md),Skill Rule of Twoself-classification,Memory (MeowKit convention)block using##pattern:/##note:/##decision:prefixes against typed memory files. The 3 intelligence agents persist their reports totasks/reports/jira-{evaluate,estimate,analyze}-*.mdfor cross-session continuity. - The
jira-estimatoragent verifies the per-instance Story Points field ID at runtime (fields list --search "Story Points") instead of guessing —customfield_10016is the documented default but the agent always confirms. - Pattern files at
mk:jira-lifecycle/references/patterns/{standard,software-dev,jsm-request,incident}-workflow.mdare now labeled "CONCEPT REFERENCE — NOT AUTHORITATIVE" and point at the discovered workflow cache as the source of truth.
Removals
mk:confluenceskill removed — 9 files deleted, 3 cross-references updated. Migration: confluence reads no longer have a first-party path; if needed, invoke Atlassian MCP directly permk:jira/references/install-and-auth.md.- Documentation cleanup follow-up: deleted orphaned
website/reference/skills/confluence.mdreference page and pruned lingering cross-references fromdocs/project-context.md,docs/meowkit-architecture.md, andwebsite/reference/skills.mdindex. - The legacy
mk:jiraAtlassian-MCP execute path is gone. The router contains zeroAgent(...)calls and zerojira-asinvocations. - The 3 intelligence agents previously at skill-scoped
meowkit/.claude/skills/jira/agents/move to project-scopedmeowkit/.claude/agents/jira-{evaluator,estimator,analyst}.md. The old directory is deleted.
Migration Notes
- Run
npx mewkit upgradeto pick up the new defaults — this auto-installsjira-asinto.claude/skills/.venvvia the newrequirements.txt. - Populate
.claude/.envfrom.claude/.env.examplewith the threeMEOW_JIRA_*vars. - Pre-existing scripts that called
/mk:jira evaluate KEYshould switch to/mk:jira-evaluator KEY(and similarly forestimate/analyze). mk:confluenceusers: there is no drop-in replacement. Use Atlassian MCP directly, or read pages manually before invokingmk:jira-issuefor ticket creation.
Breaking Changes
mk:jirais no longer an executor — it only routes. All previous/mk:jira <verb>invocations route to the appropriatemk:jira-*leaf instead of executing inline.mk:confluenceremoved entirely.- Required env vars:
MEOW_JIRA_API_TOKEN,MEOW_JIRA_EMAIL,MEOW_JIRA_SITE_URLin.claude/.env. Without them, the SessionStart hook surfaces[mk:jira] <KEY> missingand wrapper invocations error out.
2.8.2 (2026-05-09) — Prompt Enhancer Output Modes
Highlights
mk:prompt-enhancer default output is now the rewritten prompt only — no analysis, no preamble, paste-ready into any coding agent. The new --analyze flag opts back into the four-section diagnostic surface (decomposition, detected issues, source-grounded suggestions), and --score adds a deterministic 1–10 quality rating on the original prompt with a transparent rubric breakdown.
Improvements
mk:prompt-enhancerdefault mode emits only the rewritten prompt code block — decomposition and weakness detection still run internally to feed the rewrite, but are no longer displayed unless requested.- New
--analyzeflag — surfaces the original-prompt analysis (5-component decomposition, FOUND-only issues, one-fix-per-finding suggestions) alongside the rewrite. - New
--scoreflag — adds a deterministic 1–10 quality score on the original prompt using a fixed rubric (5 components ×{0,1,2}− issues × 0.5, clamped to 1–10, banker's rounding). Auto-promotes to--analyze --scorewhen used alone since a bare integer hides the rubric. mk:prompt-enhancerfrontmatter gains anargument-hintfield for slash-command argument completion in supporting clients.- Skill docs and references cleaned up — removed source-citation
§symbols and academic section IDs (§5.2,§4.1, etc.) that added noise without aiding the user. Quoted source-name citations preserved.
2.8.1 (2026-05-09) — The Prompt Enhancer Release
Highlights
mk:prompt-enhancer ships as a model-agnostic prompting framework synthesized from seven prompting and context-engineering source documents. It decomposes a draft user prompt into goal / context / constraints / acceptance / output-format, detects ten weakness patterns, and emits a rewritten prompt using a universal markdown kernel that works across coding agents without model dispatch. An opt-in --deep mode surfaces codebase suggestions from allow-listed sources only.
New Skills
| Skill | Purpose |
|---|---|
mk:prompt-enhancer | Refine a draft user prompt — decompose, detect weaknesses against a 10-item checklist, emit a model-agnostic rewrite using the universal kernel (plain markdown, no XML, no vendor tokens). Auto-suggests freedom level and verbosity. Optional --deep flag scouts allow-listed sources for [FILL-IN] placeholder candidates. |
New Commands
/mk:prompt-enhancer— runs the 5-step framework on a draft prompt and writes the analysis + rewrite to the active plan dir or${CLAUDE_PLUGIN_DATA}.
Features
- Auto-suggested freedom level (
LOW/MEDIUM/HIGH) based on task shape — destructive ops route toLOW, standard feature work toMEDIUM, open-ended exploration toHIGH. Surfaced in theOUTPUT FORMATsection so the user can flip without re-running. - Auto-suggested verbosity (
terse/structured/confirmation) by task type — terse for implementation, structured for review/analysis, confirmation for Q&A. - Bounded
--deepscout — ≤8 files, ≤100 lines/file, ≤30s wall clock, default-deny against.claude/memory/*,.env*,tasks/, secrets. Aborts gracefully withSCOUT_BUDGET_EXCEEDED,NO_GIT_REPO,MINIMAL_DENSITY, orNO_MATCHES. Suggestions live in[FILL-IN: <desc> (suggested: <path>)]brackets — never auto-substituted. - 10-canary eval suite (six default-mode + four deep-mode) with hard-fail boundary canary that grep-audits saved output and transcript for forbid-list paths.
Improvements
mk:prompt-enhancerrewrites strip model-coupled framing — XML tags (<context>,<task>), vendor tokens ("think step by step",apply_patch, "Reasoning: high"), and role-as-XML wrapping. Detection item#10flags the input; the rewrite emits plain markdown headings.- Added
references/context-safeguards.md— six model-agnostic safeguards (right-altitude tone, identifier-based context, long-horizon defenses, tool-result clearing, bloat avoidance, eval discipline) loaded just-in-time on long-horizon signals.
2.8.0 (2026-05-09) — The Cleanup & Audit Release
Highlights
mewkit upgrade now cleans up files the new release no longer ships, so old kit files do not pile up in agent context across versions. A new mk:context-audit skill reports how much of the model context window your .claude/ setup is using and recommends the highest-value trims. Red-team and party deliberation gain cross-persona blind-spot detection — every reviewer is asked to name one dimension outside their specialty that the team may also miss. Four small behavioral rule files were merged into one agent-conduct.md, and conditional rules moved out of the always-loaded folder so the safety bundle stays lean.
New Skills
| Skill | Purpose |
|---|---|
mk:context-audit | Read-only audit of .claude/ structural overhead. Reports prioritized "remove X save Y tokens" recommendations against the model context window. |
New Commands
/mk:context-audit— runs the audit pipeline and prints a markdown report. Read-only; no files are modified.
CLI
mewkit upgradegains--no-cleanup(skip orphan deletion) and--yes(auto-confirm). Default behavior is on: orphans are listed and a confirmation prompt is shown before deletion. Non-TTY environments skip deletion automatically (cron-safe).
Features
- Manifest-driven orphan detection in
mewkit upgrade. Compares files on disk under.claude/{rules,skills,agents,hooks}/againstrelease-manifest.json. Anything on disk + not in the manifest + not allowlisted is treated as an orphan. - Conservative default allowlist exempts user customizations:
custom-*,user-*,*.local.md, scope-internalREADME.md. - Scope is intentionally limited to kit-owned directories. User-private state —
.claude/memory/,.claude/logs/,.claude/.env,.claude/secrets/— is never inspected. - New CI step
Validate rule availabilityfails the build if any rule path referenced in.md/.sh/.cjs/.js/.ts/.json/.py/.yaml/.yml/.tomlfiles does not resolve on disk. Catches dead references before they ship. - New skill-body precheck in
mk:agent-detectorHARD-GATEs Phase 0 routing on the existence of all 5 always-on safety rules (security-rules.md,injection-rules.md,gate-rules.md,core-behaviors.md,development-rules.md). Aborts withSAFETY BASELINE INCOMPLETEif any are missing. - New
## Compaction Policysection inCLAUDE.mdinstructs Claude Code to preserve numberedinjection-rules.mdrules, the Subagent Status Protocol, and the safety-rule names verbatim across auto-compaction. - Cross-persona blind-spot detection in
mk:plan-creatoradversarial review. Each persona names ONE dimension outside their specialty that the team may also miss; aggregated as a separate "Cross-Persona Blind Spots" section in the red-team report. mk:partyRound 2 gains the same blind-spot probe — each agent calls out a dimension the room may have under-weighted.mk:partydecision record adds a## Next Actionfield — the single concrete next step coming out of the discussion.- New conditional rule file
risk-checklist.md— Phase 0 horizontal-risk flags (auth, authorization, data-model change, audit/security event, external systems, public contracts, cross-platform, existing-behavior touch) that complement the vertical domain match inmk:scale-routing. - New helper script
.claude/scripts/rules-audit.shfor contributors to check rule-file health locally.
Improvements
smartUpdatenow returnsorphansDeletedandorphansSkippedarrays inUpdateStats; surfaced in themewkit upgradesummary output.- New
find-orphans.tsmodule exported fromcore/index.ts— reusable for downstream tooling that needs orphan detection independent of the update pipeline. - Four behavioral rule files (
naming-rules.md,output-format-rules.md,context-ordering-rules.md,search-before-building-rules.md) merged into a singleagent-conduct.md. Tier A preserves orchestrator-consumed schemas (Subagent Status Protocol, Project Context First, Eureka logging) verbatim; Tier B compresses model-default rules. Net: one file instead of four with no behavior change. - Conditional rule files moved from
.claude/rules/to.claude/rules-conditional/so the always-loaded bundle stays small.mk:agent-detectorloads them on demand at Phase 0. Affected files:agent-routing.md,model-selection-rules.md,phase-contracts.md,risk-checklist.md,scale-adaptive-rules.md.
Removals
.claude/rules/naming-rules.md,.claude/rules/output-format-rules.md,.claude/rules/context-ordering-rules.md,.claude/rules/search-before-building-rules.md— content lives inagent-conduct.md. The orphan-cleanup pass inmewkit upgraderemoves the old files automatically on next upgrade.
Bug Fixes
docs/research/claude-memory.mdfixed an illustrativeln -sexample that referenced a non-existent.claude/rules/security.mdpath. Replaced with a placeholder name (your-org-security.example.md) that does not collide with the rule-availability validator's regex.
Migration Notes
npx mewkit upgradeThe first mewkit upgrade after this release lists the four removed rule files as orphans and prompts before deleting them. Pass --yes to auto-confirm in scripted environments, --no-cleanup to keep the old files on disk.
2.7.6 (2026-05-09) — Phase 0 risk checklist
Improvements
- New rule file
.claude/rules/risk-checklist.md— 9 horizontal-risk flags (auth, authorization, data-model change, audit/security event, external systems, public contracts, cross-platform, existing-behavior touch, performance-critical path) that complement vertical domain matching inmk:scale-routing. Loaded bymk:agent-detectorat Phase 0. Together they raise the floor on routing accuracy without adding new tiers or new lanes. mk:agent-detectorStep 0b now loads the risk checklist alongsidephase-contracts.mdandagent-routing.md.
Note: The risk-checklist file moved to
.claude/rules-conditional/risk-checklist.mdin v2.8.0 as part of the rules-folder split.
2.7.5 (2026-05-09) — CLAUDE.md trim + reference cleanup
Highlights
CLAUDE.md is trimmed from 209 to 112 lines to honor Anthropic's memory guidance — files over 200 lines reduce instruction adherence. Phase Composition Contracts, the Agents table, Adaptive Density, the Orchestrator Entry Point Rule, Commands-vs-Skills, advisory skill frontmatter fields, and the Skill Rule of Two now live in .claude/rules/ where they load alongside the other rule files. Cross-references in skills, docs, and scripts that pointed at the old CLAUDE.md sections were updated to the new locations. Broken *_INDEX.md pointers in shipped skill markdown were repaired so they resolve in fresh mewkit init installs.
Improvements
CLAUDE.mdtrimmed from 209 → 112 lines; pointers replace inline tables. The slim file fits Anthropic's ≤200 line ceiling with a 150-line internal target.- New rule file
.claude/rules/phase-contracts.md— phase I/O contracts (what each phase expects/produces); loads unconditionally. - New rule file
.claude/rules/agent-routing.md— 17-row agent → role → phase routing table plus theMEOWKIT_PM_AUTO=offopt-out; loads unconditionally. .claude/rules/orchestration-rules.mdgains "Orchestrator Entry Point Rule" — themk:cook↔mk:workflow-orchestratormutual-exclusion contract..claude/rules/skill-authoring-rules.mdgains "Advisory Frontmatter Fields" (preamble-tier,phase,trust_level,injection_risk) and "Commands vs Skills" (the three valid command patterns)..claude/rules/injection-rules.mdRule 11 — Skill Rule of Two as an always-loaded numbered rule..claude/rules/post-phase-delegation.mdRule 4 body compressed to a pointer; eliminates duplicate restatement of the Orchestrator Entry Point Rule.CLAUDE.mdPlanning section now points totasks/plans/YYMMDD-name/so Claude knows wheremk:plan-creatorwrites plans.validate-docs.pynow emitsERRORand exits non-zero whenCLAUDE.mdexceeds 150 lines — prevents regression of the trim.
Bug Fixes
mk:agent-detectorreferences —after-detection.mdcited.claude/agents/AGENTS_INDEX.mdtwice; that file is contributor-facing and does not ship viamewkit init. Both pointers now resolve to.claude/rules/agent-routing.md.mk:rubricSKILL.mdreferences table — dropped the row pointing atRUBRICS_INDEX.md. The skill's--listflag generates the catalog dynamically, which is the actual interactive entry point.mk:rubriccalibration checklist — removed the "Add toRUBRICS_INDEX.md" item. Custom user rubrics live in user projects where the index does not ship;--listdiscovers them at runtime.
2.7.4 (2026-05-02) — Browser skill consolidation
Highlights
mk:browse is retired. All browser automation now goes through mk:agent-browser, eliminating the routing decision between two overlapping skills. A new migration reference ships inside mk:agent-browser with verb-to-verb mapping, copy-paste recipes for capabilities agent-browser doesn't expose natively (responsive screenshots, link/form enumeration, performance timing, eval-based state checks), and a developer-machine handoff runbook for CAPTCHA/MFA flows.
Improvements
mk:agent-browserSKILL.md gains a data-boundary callout — page content, snapshot text, andevalreturn values are DATA perinjection-rules.md. RecommendsAGENT_BROWSER_CONTENT_BOUNDARIES=1so page-derived strings arrive wrapped in nonce markers.- Sessions and credentials note added — any caller using
--session-nameshould setAGENT_BROWSER_ENCRYPTION_KEYfirst, otherwise session state under~/.agent-browser/sessions/is plaintext. - New reference
agent-browser/references/migrating-from-browse.mdcovers verb mapping, recipes (responsive,links,forms,perf,is-statefallback), and the--headed+wait --urlrunbook for interactive auth. mk:qasetup andmk:office-hourspreamble now use acommand -v agent-browserreadiness check instead of looking for the gstack binary, with an actionableNEEDS_SETUPmessage pointing atnpm i -g agent-browser.- Cross-skill routing tables in
mk:agent-detector,mk:evaluate,mk:chom,mk:fix, andmk:qa-manualupdated to namemk:agent-browseronly — the oldmk:browse-or-mk:agent-browserpick-by-complexity guidance is gone.
Removals
mk:browseskill — directory deleted, manifest entries removed, catalog row dropped fromSKILLS_INDEX.md. Historical attribution preserved inSKILLS_ATTRIBUTION.mdunder## Removed. Existing bookmarks to/reference/skills/browseredirect to a deprecation stub linking tomk:agent-browser.$Bshell-alias workflow patterns frommk:qareferences andmk:office-hours/phase4-alternatives-and-sketch.md— replaced withagent-browserinvocations or with the eval recipes from the migration guide.
Migration Notes
- Install the CLI:
npm i -g agent-browser(orbrew install agent-browser, orcargo install agent-browser), then runagent-browser installonce to download Chrome. - Set
AGENT_BROWSER_ENCRYPTION_KEYin your shell and CI secret store before invoking any session-using recipe — required for cookies/localStorage to persist encrypted at rest. - Existing gstack
auth-state.jsonfiles (cookie-import format) are not portable. Re-runagent-browser auth saveor capture fresh state withagent-browser state save. - Personal scripts using
$B <verb>should consultagent-browser/references/migrating-from-browse.mdfor the verb mapping.
2.7.3 (2026-05-01) — npx mewkit resolution fix
Bug Fixes
npx mewkit CMDfailed on some machines withsh: meowkit: command not found(macOS) or'meowkit' is not recognized as an internal or external command(Windows) — the npm package was namedmewkitbut exposed a bin calledmeowkit, so resolvers (older npm, pnpm dlx, yarn dlx, certain Windows shells) spawned the bin by name throughPATHinstead of the symlinked.bin/path. Bin renamed tomewkitso package name and bin agree across all package managers.pre-completion-check.shcounter never reaching its 3-attempt soft-nudge cap — Claude Code assigns a new session ID for every blocked-Stop cycle, andproject-context-loader.shwas resettingsession-state/precompletion-attempts.jsonon every SessionStart, wiping the counter mid-loop. The pre-completion check now owns its own counter lifecycle (clears on verification success or cap-hit); the SessionStart reset is removed.
CLI
- Help banner and
mewkit statusnow printmewkitinstead ofmeowkitto match the published bin name. mewkit doctorvenv-missing hint updated to suggestmewkit setup --only=venv.
2.7.2 (2026-05-01) — Checkpoint subsystem cleanup
Highlights
The session-state checkpoint subsystem stops accumulating files unboundedly. session-state/checkpoints/ is now a single overwriting checkpoint-latest.json written atomically via POSIX .tmp + rename — replacing the prior pointer-and-numbered-file scheme that had no rotation logic. Resume context, git-drift detection, and budget tracking work the same; the file count just stays at 1.
Improvements
- Checkpoint dir collapsed to a single file —
checkpoint-utils.cjsrewritten withoutnextSequence(), theO_EXCLlock, the.next-seqcounter, or the filename validator. Two writers (Stop hook + phase-transition trigger) race to last-writer-wins; sequence is display-only. auto-checkpoint.cjsfires on phase-transition writes only — the modulo-20 mid-session trigger andauto-checkpoint-counter.jsonare removed. The Stop hook still captures end-of-turn state.orientation-ritual.cjsreads the checkpoint file directly with onereadFileSyncand atry/catch— no more pointer indirection, no more two-hop read.- New
safePlanPathguard inorientation-ritual.cjsrejects..traversal and control-character injection (e.g. embedded\n"ignore previous instructions" payloads) in theplan_pathfield before stdout emission. Replaces the deletedisValidCheckpointFilefilename guard with content-level validation. - Two superseded shell hook writers removed —
.claude/hooks/post-write-build-verify.shandpost-write-loop-detection.shwere marked "Not registered. Do not re-register." Their.cjsports (build-verify.cjs,loop-detection.cjs) keep working unchanged; env-var bypasses (MEOWKIT_BUILD_VERIFY=off,MEOWKIT_LOOP_DETECT=off) still honored by the active handlers. HOOKS_INDEX.mdreconciled with disk — stale rows for the v2.4.0-deletedmemory-loader.cjs,memory-parser.cjs,memory-injector.cjs,memory-filter.cjsremoved, replaced with a single tombstone callout. State-file table updated to referencecheckpoint-latest.jsoninstead ofauto-checkpoint-counter.json.AGENTS_INDEX.md,build-verify-commands.md, andtrace-schema.mdreconciled — stale "13 agents" phrasing corrected to "17 agents",.shreferences updated to.cjs, and thebuild_verify_result/loop_warningtrace events deprecated (their emitters were removed in v2.4.0; the events have not fired since).
Bug Fixes
- Pre-existing silent-failure path closed — under
nextSequence()lock contention the function returnednull, both writers passednulltowriteCheckpoint, producingcheckpoint-null.jsonwhichisValidCheckpointFilerejected;orientation-ritualthen returned empty silently and the user got a cold-start resume with no error visible. The new design has no lock and no null-seq path; resume cannot fail this way. - Resume injection no longer susceptible to prompt-injection via the
plan_pathfield —safePlanPathfilters..traversal and control-character payloads (newline, escape sequences) before they reach Claude's system context.
Removals
meowkit/.claude/hooks/handlers/checkpoint-utils.cjsexportsnextSequenceandisValidCheckpointFileare gone — they were only used inside the checkpoint subsystem and have been replaced by the single-file overwrite pattern.meowkit/session-state/checkpoints/.next-seq,.seq.lock, andauto-checkpoint-counter.jsonare no longer produced. Existing files are stale and safe to delete;orientation-ritual.cjsignores them.- Two shell writers removed (see Improvements). Their functionality was already migrated to
.cjshandlers in v2.4.0; the.shfiles were dead code.
2.7.1 (2026-04-30) — Phase Frontmatter Contract
Highlights
mk:plan-creator now ships a strict YAML frontmatter contract for phase files — frontmatter is the machine-readable source of truth, the Overview block is a human-readable mirror that sync-back regenerates from it. Aligns plan-creator output with the orchviz parser cascade, hardens the validator against drift, and formalizes the cook finalize-step sync-back algorithm.
Improvements
- Phase files (
phase-XX-*.md) MUST begin with a YAML frontmatter block — schema:phase,title,status,priority,effort,dependencies.status: pendingis the only legal value at creation;failedandabandonedare terminal. Documented inreferences/phase-template.mdandreferences/output-standards.md. - Cook's finalize-step sync-back is now a formal algorithm — counts
[x]checkboxes in## Todo Listto derivepending/in_progress/completed, regenerates the Overview mirror from frontmatter, never overwrites terminal states, idempotent on re-run. Documented inreferences/task-management.md. - Step-08 hydration adds a "Status Read Order" block that mirrors
packages/mewkit/src/orchviz/plan/parse-phase-file.tsso plan state stays consistent across the planner, the validator, the harness, and orchviz. --twomode approach files (plan-approach-a.md,plan-approach-b.md) get frontmatter at creation withstatus: pending—draftis no longer used because it is not in the parser union.--parallelmode mergesownershipandparallel_groupinto the same frontmatter block instead of a separate one.mk:reviewstep-03b whole-plan-sweep gains a drift surface — flags staledependencies: [N]references when phases are renumbered or removed (informational, non-blocking).
Bug Fixes
scripts/validate-plan.pynow hard-fails onstatus: completedwritten at creation time and onunknown/draft/donewritten from frontmatter — the validator catches the "stamp at creation" anti-pattern before Gate 1.scripts/validate-plan.pydocuments its PyYAML dependency — install vianpx mewkit setup(creates.claude/skills/.venv/); run via.claude/skills/.venv/bin/python3 scripts/validate-plan.py <plan.md>.
2.7.0 (2026-04-30) — The Namespace Rename Release
Highlights
Skill folders renamed from .claude/skills/meow:X/ to .claude/skills/X/ and the skill identity prefix moved from meow: to mk:. Cross-platform safe — eliminates the colon that broke Windows NTFS checkouts. Slash commands move from /meow:X to /mk:X. Backward-compat alias keeps in-prompt meow: text working with a stderr warning during the v2.7.x window; hard-cut in v2.8.0.
Features
- New helper
packages/mewkit/src/migrate/discovery/skill-id-utils.ts— single source for skill-id parsing, validation, and legacy-prefix resolution. ExportsparseSkillId,resolveLegacy,_resetWarnState. Path-traversal guard rejects basenames not matching^[a-z][a-z0-9-]{0,62}$. - New CI step
Reject residual meow: namespacein.github/workflows/ci.yml— fails the build if any^name: meow:SKILL.md frontmatter or/meow:[a-z]slash reference exists in.claude/commands/,.claude/rules/, orCLAUDE.md. SkillInfo.idis now a required field on the discovery type, derived from frontmattername:and normalized throughresolveLegacy. Forces compile-time handling at every consumer.
Improvements
discoverSkills()is fully content-based — any directory under.claude/skills/containing a SKILL.md is a skill, regardless of folder prefix.setup.ts:54collectSkillDeclaredDepsfilter changed from name-based (startsWith("meow:")) to content-based (existsSync(SKILL.md)).- Schema regex at
.claude/schemas/skill-schema.jsonwidened from^meow:[a-z][a-z0-9-]*$to^(mk|meow):[a-z][a-z0-9-]*$for the deprecation window. Narrows to^mk:in v2.8.0. scripts/validate-skill-frontmatter.pyglob fixed frommeow:*/SKILL.mdto*/SKILL.mdplus a zero-match guard — empty scans now exit with code 2 instead of phantom-passing.scripts/check-skill-cross-refs.shrewritten — inventory built from bare-name folders, scans formk:[a-z][a-z0-9-]*references, fails on empty inventory.- All hook scripts refreshed —
gate-enforcement.sh,privacy-block.sh,post-session.sh,project-context-loader.sh,pre-completion-check.sh,memory-topic-file-migrator.cjs. Privacy-block SSRF glob updated to match*web-to-markdown*and*mk:web-to-markdown*so the guard survives the folder rename. skill-creatoris now self-consistent —init-skill.pyandvalidate-skill.pyenforce themk:prefix; SKILL.md template emits/mk:{slug}invocation syntax andmk:{name}frontmatter.
Removals
.claude/skills/meow:*/folder layout removed. Skills now live at.claude/skills/X/. Migration:npx mewkit upgraderuns the legacy-namespace migrator with confirmation prompt..claude/commands/meow/folder removed. Slash commands now live at.claude/commands/mk/. The 21 existing commands moved as-is; the 56 phantom skill-only aliases were intentionally not generated.
Migration Notes
npx mewkit upgradeThe upgrade pipeline detects existing meow:* folders, prompts the user, and then:
- Renames folders via
git mv(preserves history); falls back tofs.renameon non-git repos. - Rewrites SKILL.md frontmatter
name:frommeow:Xtomk:X. - Reconciles
~/.mewkit/portable-registry.json— stripsmeow-prefix from sanitizeditemkeys. - Aborts if the git tree is dirty, or if any folder basename fails the path-safety regex.
If you have custom scripts or aliases that invoke /meow:cook, retype them as /mk:cook. In-prompt text references like meow:scout continue to work via the resolver during v2.7.x — they emit a one-time stderr deprecation warning per id, and they hard-fail in v2.8.0.
Breaking Changes
- Skill folder paths:
.claude/skills/meow:X/→.claude/skills/X/. - Skill identity prefix:
meow:X→mk:Xin SKILL.md frontmatter and all cross-references. - Slash command paths:
.claude/commands/meow/X.md→.claude/commands/mk/X.md. Type/mk:cookinstead of/meow:cook. SkillInfo.idfield is now required (was previously absent). Downstream consumers reading the discovery output now see a guaranteed canonical id.
2.6.2 (2026-04-29) — The Telemetry & Validator Release
Highlights
Hook telemetry, schema-validated skill frontmatter, cross-reference CI, and a re-baselined critical-findings audit. Every probe is data-driven — Phase 3 advanced enhancements stay deferred until the new hook-log.jsonl shows real demand. CI now blocks merges that introduce phantom mk:* references or unregistered hooks.
CLI
mewkit setupgains aproject-contextstep that warns whendocs/project-context.mdis absent and tells the user which/mk:project-contextaction to run.
Features
- New scripts under
scripts/—check-skill-cross-refs.sh,check-hook-registration.sh,validate-skill-frontmatter.py, andtelemetry-decisions.py. All four wire into CI; the telemetry tool runs on demand and emits per-item ship/reject verdicts from log data. - New JSON Schema at
.claude/schemas/skill-schema.json— permissive baseline calibrated against all 77 current skills. Validates frontmatter on every PR. - New hook helper
lib/hook-logger.sh— append-only JSONL telemetry at.claude/hooks/.logs/hook-log.jsonlwith 50MB rotation (rotated logs stay plain text, no gzip, so telemetry analysis stays cheap). - Probe hooks for
PreCompactandPostToolUseFailure, plus aStop-event control probe that disambiguates "event unsupported" from "logger broken." Activated immediately; data accumulates in the background. - New canonical hook regression test at
.claude/hooks/__tests__/advisory-boundary.test.cjsruns vianode --testand locks@@GATE_BLOCK@@and@@PRIVACY_BLOCK@@sentinel output. mk:reviewworkflow gains stepstep-03b-whole-plan-sweep.mdbetween triage and verdict — re-readsplan.mdplus phase files, surfaces cross-file drift, never auto-FAILs.mk:validate-plangains a Whole-Plan Consistency Sweep section that emits asweep_failuresblock alongside the 8-dimension verdict.
Improvements
.github/workflows/ci.ymlnow runs all four validators and the hook regression test on every PR, in the existingvalidatejob. No new workflow file.meowkit-architecture.md10 critical-findings table re-baselined — four of six findings the prior audit listed as OPEN were already CLOSED in the current tree. Component inventory updated to reflect the 8 actual handlers (prior table claimed 12).- Probe hooks ship behind the existing telemetry path so future advanced-feature decisions consult
hook-log.jsonlevidence instead of speculation.
Bug Fixes
- Audit doc claimed
mk:cook/SKILL.md:159had a barememory/path — verified-incorrect. Line 170 already used the correct.claude/memory/prefix. Stale finding closed. - Audit doc claimed
mk:lazy-agent-loader/SKILL.md:13hardcoded an agent count of 15 — no hardcoded count exists in the current tree. Stale finding closed. - Audit doc claimed seven
mk:*command refs incommands/meow/were phantom — all seven resolve to a real command file under the post-audit "Commands vs Skills" rule. Stale finding closed.
Migration Notes
- After
npx mewkit upgrade, run the new validators locally to catch any drift introduced before the upgrade —bash scripts/check-skill-cross-refs.sh && .claude/skills/.venv/bin/python3 scripts/validate-skill-frontmatter.py.
2.6.1 (2026-04-22) — The project-manager Release
Highlights
New 17th core agent project-manager — a cross-workflow delivery tracker that aggregates plan, test, review, contract, and cost state into an evidence-based status report classified as done / in progress / blocked / not started. Ships the new /mk:status slash command, a new post-phase-delegation.md rule, and a new pm-status-template.md report schema. Five orchestration skills (mk:cook, mk:autobuild, mk:workflow-orchestrator, mk:fix complex path, mk:worktree) now cite the rule to delegate post-phase. Opt-out via MEOWKIT_PM_AUTO=off.
New Agents
project-manager— cross-workflow delivery tracker (haiku tier). Reads plan + verdicts + contracts + cost-log + git log; writes status reports co-located inside each plan dir at{plan-dir}/status-reports/{YYMMDD}-status.md. Backward-looking ("what's done, what's blocked") — complement, not replacement, formk:helpwhich remains forward-looking ("what's next").
New Commands
/mk:status— foreground entry point forproject-manager. Resolves the active plan (prompts if multiple), delegates to the agent, prints the report path.
Features
- New rule
post-phase-delegation.md— 7-rule charter defining PM fire points, invocation form, skip conditions, orchestrator disambiguation, and the no-hook-dispatch safety property. - New report template
tasks/templates/pm-status-template.md— follows planner's template convention; schema edits happen in one file, not inside the agent body. - New env var
MEOWKIT_PM_AUTO=off— disables all silent PM fires from orchestration skills./mk:statusstill works regardless. mk:agent-detectorgains aDelivery Statusintent (keywords: status / progress / what's done / what's blocked / delivery tracking) routing toproject-manager, explicitly distinct frommk:help's forward-looking navigation intent.
Improvements
- Status reports are co-located with the plan they describe. Archive moves them together. No central
tasks/status-reports/dir; each plan lazily creates its own subdir on first write. - Harness iteration cap escalation (
step-05) now surfaces current delivery state BEFORE theAskUserQuestionescalation — user sees what's done and what's blocked before deciding ship / abort. - Parallel-execution Rule 5 appends: after the integration test passes, PM emits a merge report summarizing what each parallel branch contributed.
- Agent count: 16 → 17. Architecture
2counts,6roster, AGENTS_INDEX, CLAUDE.md, and agent-detector routing data all synchronized.
Bug Fixes
docs/meowkit-architecture.mdmermaid subgraph caption "Key Agents (16)" updated to (17); slash-commands count bumped 20 → 21.
2.6.0 (2026-04-22) — The Skills Compliance Release
Highlights
A 7-agent audit of all 77 mk:* skills against Anthropic's Skill-authoring best practices, Lessons-from-building-Claude-Code, and MeowKit's own skill-authoring-rules.md. Ships ~220 edits across description fields, frontmatter, reference integrity, scripts, and grounding. Zero new skills, zero breaking changes, measurably cleaner routing.
Improvements
- All skill descriptions normalized to Anthropic third-person format —
mk:cook,mk:fix,mk:agent-detector,mk:session-continuationrewritten out of imperative/greedy mood that cannibalized sibling routing. - Five overlap clusters disambiguated with explicit
NOT for X (see mk:Y)clauses — bug-fix (fix / investigate / build-fix), pipeline (cook / workflow-orchestrator / harness), browser (browse / playwright-cli / agent-browser / qa-manual), code-quality (review / clean-code / simplify / evaluate), planning (plan-creator / planning-engine). Twenty additional skills got focused exclusion clauses where latent overlap existed. mk:agent-browser8 inter-ref cross-links flattened andauthentication.md ↔ session-management.mdcircular reference broken — all 9 reference files remain directly linked one level deep fromSKILL.md.- New
step-file-rules.mdRule 6 — step-file skills (mk:review,mk:trace-analyze,mk:plan-creator,mk:autobuild,mk:evaluate) formally allowed to chainSKILL.md → step-NN.md → references/X.mdprovided each step file opens with a Contents TOC. - Seven skills that reference
.claude/skills/...paths directly gained a> Path convention:note declaring$CLAUDE_PROJECT_DIRas the assumed cwd —mk:rubric,mk:multimodal,mk:skill-creator,mk:intake,mk:llms,mk:investigate,mk:jira. - MCP prerequisite hardening for
mk:jira,mk:confluence,mk:planning-engine— server-key assumption (.mcp.jsonkeyatlassian) documented via Gotchas without hardcoding prefixes, preserving install portability. - Twenty-two skills renamed their trigger section to canonical
## When to Use— previously fragmented across "When to Invoke", "When to Activate", "Trigger Conditions". - 115 reference files over 100 lines auto-gained a
## ContentsTable of Contents via idempotent generator, safe to re-run on future drift. Original audit counted 25; actual was 116 (4.6× under-count, largely frommk:angular). - Frontmatter normalization —
preamble-tier: 4→3onmk:qa/mk:review/mk:ship(valid range is 1-3). DeadautoInvokeandpriorityfields deleted from four skills after grep-confirming zero readers in hooks, scripts, or CLI.sources→sourcesingular unified across seven skills.mk:chominjection_riskbumpedlow → mediumsince it replicates external code into the project. mk:skill-creatorcompliance — now has its own## Gotchassection, 500-line cap matches authoritative Rule 3 (was 150), emitted template includes mandatory## Gotchasheader so every future scaffold inherits Rule 1 compliance.scripts/validate-skill.pygained check 8/8 for Gotchas header presence and auto-passes step-file skills.
Bug Fixes
mk:lint-and-validatewas undiscoverable — malformed YAML frontmatter had an unquoted colon inTriggers onKeywords:which corrupted parsing. Description now wraps cleanly in double quotes.- Empty Python venv —
.claude/skills/.venv/existed butpipwas half-installed with no RECORD file and nobin/pipsymlink, so all seven Python-backed skills crashed on first import. Bootstrapped viaget-pip.py --ignore-installed --no-deps, thennpx mewkit setup --only=depsinstalled the nine required packages.npx mewkit doctornow reports 13 PASS / 1 WARN (optional Playwright only). mk:rubric/scripts/validate-rubric.sh --helpno longer crashes on macOS — added-h/--helpcase before arg dispatcher, which previously fell through tobasename "--help"triggering a BSDillegal optionerror.- Replaced non-existent
debuggeragent reference inmk:cook's Phase-3 dispatch table withdeveloperviamk:investigate—.claude/agents/never had adebugger.md. HARD-GATEdecorative tags inmk:cookandmk:fixbodies replaced with**HARD GATE**bold markdown — grep againsthooks/,scripts/, and the CLI confirmed zero consumers of the tag format.- Phantom
research-01citations removed frommk:evaluate(4 locations) — no such research file exists; constraints now cite Anthropic harness research honestly or declare themselves as heuristics. - Phantom
research-02citations removed frommk:rubric/references/calibration-guide.md(2),mk:sprint-contract/SKILL.md,mk:sprint-contract/references/bdd-to-ac-mapping.md(2), and.claude/rubrics/schema.md— same non-existence. mk:multimodal"332 system voices" unsourced count corrected to "300+ (see provider catalog)" with the MiniMax URL attached.mk:react-patternsunverifiable "45+ rules across 8 priority categories from Vercel Engineering" attribution rephrased to "curated rules drawn from framework docs and production practice".mk:ui-design-systemCSV counts corrected —colors.csv161 → 160,ux-guidelines.csv99 → 98 (matches actual row counts).mk:vulnerability-scannerdropped time-anchored "2025 threat landscape" tagline.mk:multimodal/scripts/minimax_api_client.pymagic numberspoll_interval=10andmax_wait=600now carry derivation comments.media_optimizer.pytokens_per_sec = 100 / 263constants sourced toai.google.dev/pricing.mk:multimodal/SKILL.md—check_setup.pygained the bash invocation block every other script in the file already had.mk:scout6-agent cap now documented as an intentional exception toparallel-execution-rules.mdRule 2 (read-only Explore agents produce no merge-conflict risk).mk:browsegained a Gotcha for the session-scoped$Balias silent-fail mode.mk:problem-solvingunclosed backtick at line 148 fixed.
Migration Notes
npx mewkit upgradepicks up all description changes. No user action required.- If any custom hook was reading
autoInvoke/priorityfrontmatter fields: they were grep-confirmed unread before deletion. If a hook outside the repo tree was silently depending on them, restore them explicitly in the affected skills. preamble-tier: 4→3onmk:qa/mk:review/mk:shipmay cause tiny context-ordering shifts. Functionally identical outputs.
2.5.1 (2026-04-20) — mk:henshin
Highlights
New cross-cutting skill mk:henshin — planning front door for transforming existing code into agent-consumable surfaces (CLI + MCP server + companion skill). Adapted from claudekit-engineer/agentize (tier 2). Produces a Transformation Spec and hands off to /mk:plan-creator → /mk:cook for the build. Not a builder on its own.
New Skills
mk:henshin— 6-phase planning workflow: Discover → Inventory → Capability Map → HARD GATE → Spec Write → Handoff. Non-bypassable human approval for package name, license, and ownership (business decisions);--autoand--leannever skip these. Writes an architectural decision record to.claude/memory/architecture-decisions.mdwith##decision:prefix. Ships 5 progressive-disclosure references under 200 lines each (agent-centric-design,auth-resolution-chain,mcp-transports,monorepo-layout,challenge-framework).- Boundary vs
mk:chom— henshin is outbound (local code → agent surfaces); chom is inbound (external repo → local project). No semantic overlap. Paste a GitHub URL into henshin and the Error Recovery section redirects to chom. - Triggers on
agentize,henshin,expose as MCP,wrap as CLI,publish to npm,make LLM-accessible,turn into agent tool.
Bug Fixes
mk:henshin/references/mcp-transports.md— SSE code snippet rewrote to use Express + a per-session transport map. Previous snippet mixed Hono-stylec.reswith a Node.jsServerResponseconstructor, producing a copy-paste type error in Hono environments, plus a scope leak where a singletserved multiple clients.mk:henshin/references/monorepo-layout.md—commanderdependency bumped from^12.0.0to^14.0.0(current major).
Documentation
- New per-skill reference page: /reference/skills/henshin.
- /guide/agent-skill-architecture — henshin added to the Cross-Cutting Skills and Quick-Start tables.
/mk:henshin— new skill for agentizing code into CLI, MCP, and companion skill surfaces. v2.5.1 entry with workflow summary and boundary rationale.
2.5.0 (2026-04-19) — The Native Fit Release
Highlights
Skills stop branding themselves and start reading like the project's own workflow. Roughly 70 user-facing phrases were rewritten across 50+ files so installed kits refer to "the project" / "this workflow" / "the kit" instead of "MeowKit's X", while real infrastructure names (binaries, env vars, CLI commands, frontmatter source: fields) stay intact. Ships the full 64-skill audit: mechanical cleanup, reference fixes, boundary disambiguation for seven collision clusters, and architecture wiring for memory persistence and dual-orchestrator arbitration.
Features
mk:evaluate,mk:benchmark, andmk:partynow persist their outputs across sessions — verdicts to.claude/memory/review-patterns.md, baselines tocost-log.json, architectural decisions todecisions.md. Each writer runsmkdir -p .claude/memoryfirst so the append never fails silently.CLAUDE.mdgains an Orchestrator Entry Point Rule — explicit/mk:cookwins;mk:workflow-orchestratordefers for the rest of the session. Ends duplicate Gate 1 enforcement.CLAUDE.mdgains a Skill Frontmatter Schema section definingpreamble-tier(1 | 2 | 3),user-invocable(true | false),phase(0-6 | on-demand),trust_level(kit-authored | third-party), andinjection_risk(low | medium | high). Twenty-one skills were already usingpreamble-tier: 3without a documented schema.mk:carefulemits an audit-trail log entry to.claude/memory/security-log.mdon every warn/override event (timestamp, pattern, severity, command). Log file is auto-initialized with a markdown-table header.
Improvements
- Installed skills read as the project's own workflow —
MeowKit follows the Boil the Lake principle→This workflow follows the Boil the Lake principle;Help MeowKit get better!→Help improve this workflow!; table columnMeowKit→AI-assisted; dozens of similar edits. - Seven collision clusters disambiguated — each pair now declares
use when+use OTHER instead whenat the top of both skills; no more buried routing rules. NOT this skill if:differentiators added to the reasoning cluster (mk:elicit,mk:brainstorming,mk:problem-solving).mk:workflow-orchestratorbare"implement"trigger replaced with"implement feature"— no longer firesautoInvoke:trueon trivial requests.mk:ship/references/preamble.mddeclares a memory-read of.claude/memory/architecture-decisions.mdat task start. Previously the memory reference existed in frontmatter without a body instruction.mk:reviewandmk:shiplook up plans from.claude/plans/andtasks/plans/first;~/.claude/plans/is retained only as a legacy fallback with an explanatory comment.mk:cookintent-detection table carries a green-field escalation callout pointing atmk:autobuild.mk:helpdocuments the/mk:planalias — confirmed via the slash-command router at.claude/commands/meow/plan.md.mk:docs-finderdocuments Node.js 18+ as a prerequisite for its.jsscripts and flags unbounded.claude/memory/docs-cache/growth in Gotchas.mk:investigateProcess step 4 clarifies the freeze hook is a no-op without an explicitmk:freeze TARGET-DIRinvocation.mk:benchmark/SKILL.mdaccurately describesrun-canary.shas a step-1-of-2 manifest emitter (not a suite runner);compare-runs.shdistinguishesnullscores (PENDING, excluded from averages) from valid0scores.mk:jiradescription narrowed from CRUD + evaluation to CRUD only — ticket analysis now routes tomk:intake.mk:scale-routingmarkeduser-invocable: false— it's a Phase 0 sub-skill, not a user-facing entry point.mk:partyremovesretrofrom its triggers with a pointer tomk:retrofor dedicated retrospectives.- Six skills gained
phase: on-demandfrontmatter (chom,clean-code,docs-finder,docs-init,lint-and-validate,multimodal);mk:jiracorrected fromphase: 3→phase: on-demand. - Antigravity-kit-sourced skills (
clean-code,lint-and-validate) gainedtrust_level: third-party+injection_risk: lowprovenance markers. - 34 hardcoded
/Users/sangnguyen/Desktop/compare-kit/...lines stripped from 10mk:angular/references/*.mdfiles — source-import metadata with zero runtime value.
Removals
- Dead
Codex Review | /codex reviewtable row removed from 6 shared-protocol tables (mk:browse,mk:document-release,mk:investigate,mk:office-hours,mk:plan-ceo-review,mk:retro) —/codex reviewreferenced the OpenAI Codex CLI, not a meowkit skill. claudekit-engineerprovenance prose genericized in body HTML comments, script file headers, and reference attributions. Frontmattersource: claudekit-engineerfields are policy-preserved.
Bug Fixes
mk:carefulFLUSHDB severity aligned —destructive-patterns.mdsaid HIGH,check-careful.shenforced CRITICAL. Both now say CRITICAL.mk:ui-design-system—57 font pairingscount fixed to73(CSV has 73 data rows; documented count had drifted 28%).mk:brainstorming— inventedBMAD's ~10% pivot frequencystatistic removed (no source document existed).mk:vulnerability-scanner— fabricatedOWASP Top 10:2025version label relabeled toOWASP Top 10 (2021 ranking, 2025 threat context)with a disclaimer. No official 2025 release exists as of April 2026.mk:multimodal—gemini-3.1-*andveo-3.1-*preview model IDs now carry a verify-before-deploy warning pointing at the Gemini model docs.mk:scoutandmk:docs-finder—P1-P8/P1-P14citations removed from Anthropic context-engineering-research attributions (neither research doc uses those labels).
Migration Notes
mk:workflow-orchestratorno longer fires on bare"implement"— use compound triggers ("implement feature","build feature","create feature","complex task") or invoke/mk:cookexplicitly.mk:partymemory write is now mandatory, not optional. Decision records land in.claude/memory/decisions.md. If a shell blocks writes to.claude/memory/, whitelist the directory before invoking party.- Upgrade:
npx mewkit upgrade. Fresh install:npx mewkit init. Existing.claude/memory/topic files are preserved; new writersmkdir -psafely if a parent directory is missing.
2.4.6 (2026-04-19) — mk:ship Cleanup + Design Review Checklist
Highlights
mk:ship drops its unused Codex (OpenAI CLI) integration, fixes broken bash in the preamble, and removes phantom slash-command references. mk:review gains a lite design-review checklist — source-level pattern detection for frontend diffs, adapted from gstack with additions from claudekit-engineer (Strategic Omissions, Fix Priority Order) and everything-claude-code (anti-template patterns).
Improvements
mk:review/design-checklist.md— new lite design-review reference with six categories (AI Slop Detection, Typography, Spacing & Layout, Interaction States, DESIGN.md Violations, Strategic Omissions) and a three-tier confidence system ([HIGH]/[MEDIUM]/[LOW]) for grep-actionable pattern detection.mk:shiplarge-diff adversarial review is now Claude-only — two passes (Claude structured + Claude adversarial subagent) replace the prior four-pass cross-model scheme that depended on an uninstalled external CLI.mk:shipandmk:reviewGotchas sections document the scope-gated frontend trigger on the design check and the source-pattern-only limitation (no visual rendering).
Removals
- Codex (OpenAI CLI) integration removed from
mk:ship—codex exec,codex review, andwhich codexguards dropped across five reference files. Claude adversarial subagent was already the runtime fallback. - Phantom slash-command references removed from
mk:ship—/qa-only,/plan-design-review, and/design-review(none exist as meowkit skills). The plan-verification step now emits a post-ship reminder to run/mk:qaagainst the deployed build instead of attempting to invoke a missing skill. design-review-liteas a fake skill-name in the review-log schema — renamed to"source":"ship-design-check"so the readiness dashboard no longer pretends a non-existent skill produced the entry.
Bug Fixes
mk:ship/references/preamble.md— two bash syntax errors fixed (unterminated$(# comment)upgrade-check and orphanfor...donewith a comment-eatendone).bash -nnow passes on every code block; prior runs silently failed before any shipping work started.mk:ship/references/plan-completion-audit.md— the dead/qa-onlyinvocation that silently failed every run is replaced with a one-line reminder to run/mk:qaagainst the deployed build.
2.4.5 (2026-04-19) — The Thinking Skills Release
Highlights
A new strategic-unsticking skill and three diagnostic frameworks for evidence-based debugging. mk:problem-solving ships seven non-default techniques for approach-level stuck-moments — distinct from mk:sequential-thinking, which gains five-whys-plus, scientific-method, and kepner-tregoe references for methodology-aware root-cause work.
New Skills
| Skill | Purpose |
|---|---|
mk:problem-solving | Seven non-default techniques for "stuck on approach" — simplification cascades, collision-zone thinking, meta-pattern recognition, inversion, scale game, first principles, via negativa. Explicit boundary reroutes debugging to mk:sequential-thinking. |
Improvements
mk:sequential-thinkinggains three diagnostic-framework references —five-whys-plus.md(bias guards + stopping criteria),scientific-method.md(falsifiable prediction discipline),kepner-tregoe.md(IS/IS-NOT matrix for multi-system bugs). Core workflow unchanged; load when a specific methodology fits.SKILLS_INDEX.mdand website skill indexes register the new skill and clarify cross-cutting placement for both thinking skills.
2.4.4 (2026-04-19) — Deprecated Skill Cleanup + Brand Refresh
Highlights
Three deprecated skills removed permanently. Brand assets (animated logo, SVG favicon, OG image) wired into VitePress. Vercel routing fix for direct URL access.
Removals
mk:debug— deprecated since v2.0.0, superseded bymk:investigate. Directory removed from.claude/skills/.mk:documentation— deprecated since v2.0.0, superseded bymk:document-release. Directory removed.mk:shipping— deprecated since v2.0.0, superseded bymk:ship. Directory removed.- Dead references in
SKILLS_INDEX.md,website/reference/skills/index.md,website/reference/skills-index.md,website/reference/skills/docs-init.md,docs/project-context.md, anddocs/meowkit-architecture.mdcleaned up.
Improvements
- Brand assets wired into VitePress — animated SVG logo (
meow-logo-animated.svg) replaces rasterlogo.png/logo.webpin navbar and homepage hero. - Favicon refreshed — SVG primary (
favicon.svg) + regenerated multi-resolution.ico+16/32PNGs +apple-touch-iconfrom the new brand source via ImageMagick. - OG image swapped to the
/meow|brand social card (1200×630). - Site title hidden in navbar (
siteTitle: false) — the logo carries the brand; no duplicate text. - Color token system synced with brand source-of-truth (
assets/css/colors_and_type.css): added--mk-neutral-200/800/950,--mk-accent-soft, full radius scale (xs/xl), full shadow set (card/lift/glow-strong/inset-glow), and motion easings (--mk-ease-out/--mk-ease-in-out+--mk-dur-fast/normal/slow). - Changelog reorganized to a strict section schema (
Highlights/New Skills/Improvements/Removals/Bug Fixes/CLI/ etc.) — removed internal IDs, test counts, audit metadata. Addednpx mewkit upgradepreamble. - What's-new index compressed to 1-line headlines + ≤3 bullets per release.
- RELEASING.md step 2 rewritten with the new changelog schema, style rules (DRY), and a patch-vs-minor-vs-major required-section matrix.
Bug Fixes
- Direct URL access on Vercel (
/changelog,/guide/whats-new) returned 404 — addedcleanUrls: trueandtrailingSlash: falsetovercel.json. SPA-navigation from/worked; direct requests did not because Vercel served only/changelog.htmlwithout the rewrite. - Homepage hero image was hardcoded to
/logo.pnginindex.mdfrontmatter, separate fromthemeConfig.logo— the navbar swap didn't propagate. Now/logo.svg. - README hero image pointed at
assets/branding/meowkit-logo-black.pngwhich never existed — swapped toassets/branding/meow-logo-dark.svg. - Stale favicon issue — browsers auto-request
/favicon.icofrom root regardless of<link>order, picking the old raster. Regenerated all raster variants from the new SVG.
2.4.3 (2026-04-18) — Brainstorming v2: Discovery, Scope, Anti-Bias Pivot
Highlights
mk:brainstorming rewritten with patterns extracted from BMAD-METHOD, ClaudeKit, and the everything-claude-code structural template. Adds discovery protocol, scope assessment, single mid-session anti-bias pivot, and 3 new techniques.
Features
- Discovery protocol —
AskUserQuestioncapped at 3 questions per batch, targeting binding constraint, success criteria, and ruled-out options. - Scope assessment — 3+ independently-shippable concerns (heuristic: would each be its own GitHub issue?) → user decomposes before brainstorming proceeds.
- Anti-bias pivot — one mandatory orthogonal-category pivot at idea #4 (midpoint).
- Idea Format Template — every idea carries a mandatory
Noveltyline; idea is dropped as a duplicate if you can't write one. - Technique selection tiebreaker — explicit order when multiple techniques match.
- Output templates upgraded with audit-trail fields (Discovery Trace, Scope Decision, Technique Selection rationale, pivot record, Category Distribution, scoring risk callouts).
New References
references/techniques/analogical-thinking.md— cross-domain transfer (forces non-software analogues).references/techniques/scamper.md— 7-lens checklist for iterating an existing thing.references/techniques/perspective-shift.md— Six Hats narrowed to dev contexts (on-call SRE, security, future-you, end user).references/anti-rationalization.md— 4 categories of skip-the-process excuses with counter-arguments.references/edge-cases.md— 8 documented cases where the obvious brainstorming approach is wrong.
Improvements
- Process steps reframed from prescriptive script to outcome-oriented list.
- "Hard gate" wording → "Behavioral hard rule" with explicit note that it is not hook-enforced (see
gate-rules.mdfor actual gates). references/gotchas.mdexpanded from 6 → 12 entries (scope-explosion, question-fatigue, technique-mismatch, semantic-clustering, user-pre-decided, empty-intersection).
2.4.2 (2026-04-18) — Memory Fix
Highlights
Closes the second red-team round on the memory subsystem and corrects three published-doc inaccuracies introduced during the v2.4.1 rewrite.
Bug Fixes
acquireLocknow uses exponential backoff + jitter (10ms → 400ms cap, 8 retries). Eliminates the 20–40% concurrent-write drop rate.secret-scrub.shDB-URL expression split per-scheme. BSD sed on macOS was rejecting the alternation, aborting the pipeline and discarding any content containing a DB URL.- Stripe
sk_live_/sk_test_/rk_/pk_patterns added tosecret-scrub.shto match the JS path. Shell paths previously leaked Stripe keys while the capture path redacted them. findMemoryDirsentinel check now fires at depth=0. Previously the walk could continue into a parent project, causing data loss onmewkit memory --clearfrom a nested dir.appendToQuickNotesnow uses the same per-file lock as the other capture paths. Previously concurrent##note:captures could interleave.
Improvements
- Auto-memory documentation corrected:
memory/directory (notMEMORY.mdfile), 200-line / 25 KB cap stated explicitly, subagent memory isolation documented,/memory(Claude Code) distinguished from##prefix:(MeowKit),.claude/memory/clarified as machine-local (gitignored — not team-shared). - Removed contradictory "commit them via git" instruction in memory-system guide.
2.4.1 (2026-04-18) — Memory Simplification + Red-Team Hardening
Highlights
Deletes the auto-inject memory pipeline (memory-loader + parser + filter + injector) and replaces it with on-demand topic-file reads per consumer skill. Closes all 15 red-team findings (3 critical, 3 high, 9 medium) from the memory audit; most close by deletion.
Removals
- Auto-inject memory pipeline (
memory-loader.cjs,memory-parser.cjs,memory-filter.cjs,memory-injector.cjs).UserPromptSubmitno longer runs a global memory-injection step. - Lexical keyword-to-domain match retired with the filter; topic-file retrieval is now an explicit
Read. - Commit-message privilege escalation in
post-session.sh(auto-taggedNEEDS_CAPTURE CRITICALfrom commit message keywords, bypassing filter budgets).
Improvements
- Topic-file layout:
fixes.md/json,review-patterns.md/json,architecture-decisions.md/json,security-notes.mdreplace thelessons.md+patterns.jsonmonolith. Each file has a single consumer skill. - On-demand retrieval:
mk:fix,mk:cook,mk:plan-creator,mk:reviewread the relevant topic file via their SKILL.mdReadstep. - Atomic capture writes:
immediate-capture-handler.cjsuses temp-rename for all JSON writes; crash mid-write no longer corrupts split files. Dual-lock race onarchitecture-decisions.jsoneliminated. - Memory is machine-local by default —
.claude/memory/*is gitignored;mewkit setupscaffolds a blank directory. Downstream installs no longer inherit the MeowKit dev team's learnings.
Features
- New
lib/secret-scrub.cjswith 16 regex patterns (Anthropic, OpenAI, Stripe, AWS, GitHub, JWT, DB URL, Bearer tokens, etc.). Wired into the capture path so leaked secrets no longer re-enter future session context. - Fresh-install guard: handler auto-creates
MEMORY_DIRon first run. Captures on blank projects no longer silently fail.
CLI
packages/mewkit/src/commands/memory.ts—findMemoryDirexported with project-root sentinel and 5-level depth cap;clearMemorywrites valid v2.0.0 skeletons;showStats/showSummaryread the three split files.
Bug Fixes
post-session.shlock-failure fallthrough — theacquire_lock ||branch could still execute the heredoc write. Block removed.- Stale-lock false-eviction — dual
statfailure fell back to always-stale. Safe mtime retry pattern replaces it. clearMemorywrote bare"[]"destroying the schema. Now writes proper skeletons per file scope.cost-log.jsonwriter/spec schema drift fixed;session_id,model,cache_write_tokens,cache_read_tokensfields added.cost-log.jsonwrite now uses temp-file +os.replacerename for atomicity.SESSION_IDpiped unvalidated intosedinconversation-summary-cache.sh— format validated against^[a-f0-9-]{8,36}$before use.
2.4.0 (2026-04-18) — The Agent Constitution Release
Highlights
docs/project-context.md becomes the single source of truth for every agent — a 286-line, 11-section "agent constitution" loaded at SessionStart by every agent. Resolves the agent-context-drift issue open since the 260411 audit. Full skill audit cycle: 64 findings, 61 resolved, 0 regressions.
Features
docs/project-context.mdagent constitution (tech stack, conventions, anti-patterns, testing, deployment, memory layout, hook chain). All 16 agents wired identically via## Required Context.- New SessionStart hook
ensure-skills-venv.sh— idempotent bootstrap that creates.claude/skills/.venvif absent. Composes withnpx mewkit setup. CLAUDE.md"Commands vs Skills" section documents the 3 valid command patterns (skill-composing, agent-invoking, standalone), preventing false-positive phantom flagging.
New Commands
mk:project-context init— writes a TODO-filleddocs/project-context.mdskeleton for users starting from scratch. Refuses to overwrite an existing file.
Improvements
- 12 SKILL.md files got real domain-specific Gotchas sections (5–6 entries each, no generic filler):
vue,typescript,database,build-fix,lint-and-validate,frontend-design,project-organization,jira,intake,figma,docs-finder,elicit. - 7 gate-owning skills gained
gate-rules.mdreferences:mk:plan-creator,mk:workflow-orchestrator,mk:sprint-contract,mk:cook,mk:ship,mk:review.mk:csogainedsecurity-rules.md. - README + CLAUDE.md + project-context.md surface
npx mewkit setupas the required post-install step.
Bug Fixes
- Deprecated skills (
mk:debug,mk:documentation,mk:shipping) gaineddeprecated: true+superseded_by:YAML keys (previously only described in prose, invisible to parsers). - Phantom skill refs in dispatcher fixed:
mk:plan→mk:plan-creator,mk:test→mk:testing. - Silent
python3-absent skip inpost-session.sh:27upgraded to a warning. - Silent-fail on missing
docs/project-context.mdinmk:plan-creator/step-02upgraded to explicit warning with graceful fallback.
2.3.12 (2026-04-17) — External Codebase Packing + chom v2 Rigor
New Skills
| Skill | Purpose |
|---|---|
mk:pack | Wraps repomix to export an external repo as a single AI-friendly file (markdown/xml/json/plain). Output at .claude/packs/{timestamp}-{slug}.{ext} (gitignored). |
Features
mk:pack --compress— Tree-sitter signature extraction for API-surface queries (bodies omitted).self-pack-guard.shblocks packing the current git root unless--selfis passed.mk:chomv2 — 4 user-explicit modes (--compare/--copy/--improve/--port) replacing v1's 2-mode scheme.mk:chomspeed flags:--lean(skip Phase 1 researcher for freeform inputs) and--auto(auto-approve non-HARD-GATE steps).mk:chomintent detection — keyword hints map to suggested mode flags.mk:chomexplicit Boundary Rules — emits handoff text only, does NOT invokeplan-creator/brainstorming/cook/sequential-thinkingmid-flow.
Improvements
mk:chomPhase 4 HARD GATE language hardened — explicitly non-bypassable in all modes including--lean/--auto.- chom handoff text enriched with challenge-reds summary + risk score. plan-creator owns adaptation-depth decisions downstream.
Bug Fixes
- Removed fabricated "Skills cannot call skills" claim from chom SKILL.md (contradicted by
lessons-build-skill.mdComposing Skills). - Removed fabricated "40–70% context burn" claim from pack SKILL.md (replaced with honest context-isolation framing).
- Added Error Recovery for empty / unreachable / invalid sources (chom).
2.3.11 (2026-04-14) — Env Var Handling Hardening
Highlights
.claude/settings.json adopts Claude Code's native env field for team-shared defaults. Three-layer precedence: shell export > .claude/.env > settings.json env.
Features
- Native
envfield in.claude/settings.jsonfor 9 control flags (MEOWKIT_TDD,MEOWKIT_BUILD_VERIFY,MEOWKIT_LOOP_DETECT, etc.).load-dotenv.sh/dispatch.cjsparsers now fallback-only for secrets and per-project overrides. project-context-loader.shemits## MeowKit Configblock at SessionStart so the agent sees active control vars. Gated on new sessions only (not resume/clear/compact).MEOWKIT_HOOK_PROFILEalias introduced (legacyMEOW_HOOK_PROFILEstill accepted).
Bug Fixes
- Quoted values with
#preserved literally —MEOWKIT_API_KEY="abc#123"no longer truncated. - Inline comments stripped from unquoted values only (
VAR=on # comment→on). - Indented keys trimmed (
MEOWKIT_TDD=1now loads correctly). - Dangerous keys blocked (
PATH,LD_PRELOAD,LD_LIBRARY_PATH,DYLD_INSERT_LIBRARIES,IFS,BASH_ENV,ENV) — prevents env injection via rogue.env. - Key validation against POSIX var name pattern.
pre-implement.shnow loads.envvia script-relative path fallback whenCLAUDE_PROJECT_DIRis unset.- Symlink-safe guard prevents walking into install source when
.claude/is symlinked. - CWD mismatch guard added — warns if MeowKit hooks not detected at project root.
2.3.10 (2026-04-13) — Jira Ticket Intelligence + Confluence & Sprint Planning
New Skills
| Skill | Purpose |
|---|---|
mk:confluence | Fetch Confluence pages as markdown + deep requirement analysis (Spec Research Report, gap detection with [MISSING] / [VAGUE] / [AMBIGUOUS] tags, multi-page assembly). |
mk:planning-engine | Codebase-aware tech review + sprint planning with deterministic scripts (dep-graph.py cycle detection, capacity-bin.py bin-packing). Research-only — no ticket creation. |
Features
mk:jira evaluate— qualitative complexity assessment (Simple/Medium/Complex with Fibonacci range).mk:jira estimate— heuristic story point estimation with escalation triggers.mk:jira analyze— full ticket context analysis with structured RCA output.- Inconsistency detection — missing AC, vague language, unlinked dependencies, contradictions.
- Injection defense — ticket content wrapped in DATA boundary markers.
- Goal-oriented decision tree replaces operations-centric SKILL.md.
- Add comment / add attachment as inline Tier 2 operations.
Improvements
mk:jiraSKILL.md restructured as thin routing layer (~150 lines).jql-patterns.mdpruned from 50+ to 15 core patterns.sprint-operations.mdandworkflow-transitions.mdpruned (REST details removed).- Tier 2 batch creates (3+) now require preview + confirmation.
- Partial failure behavior defined for sequential operations.
2.3.9 (2026-04-12) — Memory System Hardening
Highlights
Memory loader split into 3 focused modules. 4 critical security/correctness fixes (tag escape, budget split, YAML validation, per-entry caps). Adds ##prefix: immediate capture, opt-in anchored summarization, and project preferences.
Features
##decision:,##pattern:,##note:message prefixes auto-route to typed memory files. Content validated against injection patterns before writing.quick-notes.mdstaging area for##note:captures.MEOWKIT_SUMMARY_MODE=mergeenables merge-based summarization (preserves earlier context across compressions). Default remainsfull-regen..claude/memory/preferences.md— team-shared preferences loaded at SessionStart.- Agent readiness banner — 5-point score (CLAUDE.md, project-context, test, lint, typecheck) shown at session start. Detects Node.js, Python, Rust, Makefile projects.
CLI
mk:memory --prune— archives old standard-severity entries tolessons-archive.md, recovering injection budget. Critical entries exempt.
Bug Fixes
- Tag escape —
MEMORY-DATAwrapper tags in content are escaped before injection, preventing DATA boundary escape. - Budget split — 60% for critical entries, 40% for domain-filtered. One oversized entry no longer starves all others.
- YAML validation — malformed frontmatter entries rejected with visible
[parse-errors:]marker instead of silent fallback. - Per-entry caps — 3000 chars for critical (security findings preserved), 800 for standard.
- mkdir-based atomic locking for all memory file writes (POSIX portable;
flockdoesn't exist on macOS). - O_EXCL checkpoint sequence lock — prevents TOCTOU race between concurrent checkpoint writers.
- Staleness filter — standard entries >6 months skipped (configurable). Critical entries never expire.
- Pattern expiration — patterns older than 12 months from
lastSeenauto-expire. Critical/security patterns exempt. - Cost-log append in
post-session.shwith 1000-entry cap. - Shell-to-Python injection eliminated across 6 hook files (single-quoted heredocs replace shell interpolation).
- Domain keyword extraction — 30+ domain keywords (
api,auth,db,sql, etc.) bypass stop-word filter.
Environment Variables
| Variable | Default | Purpose |
|---|---|---|
MEOWKIT_MEMORY_BUDGET | 4000 | Total char budget for memory injection per turn |
MEOWKIT_MEMORY_STALENESS_MONTHS | 6 | Standard entries older than this are skipped |
MEOWKIT_SUMMARY_MODE | full-regen | full-regen (default) or merge (opt-in) |
2.3.8 (2026-04-12) — Multimodal Resilience, MiniMax & Provider Fallback
Highlights
Major overhaul of mk:multimodal — multi-provider generation with intelligent Gemini → MiniMax → OpenRouter fallback, MiniMax integration (image, video, TTS, music), document conversion, and MEOWKIT_ env namespace.
Features
- MiniMax image generation (
image-01). - MiniMax video generation (Hailuo 2.3) with async polling.
- MiniMax text-to-speech (
speech-2.8-hd, 332 voices, 24 languages). - MiniMax music generation (
music-2.6). - Intelligent provider router auto-selects Gemini/MiniMax/OpenRouter by available API keys;
--providerflag forces one. - Document → Markdown converter with batch mode (
document_converter.py). - Env-driven provider chains (
MEOWKIT_IMAGE_PROVIDER_CHAINetc.). - OpenRouter fallback for image gen (opt-in via
MEOWKIT_OPENROUTER_FALLBACK_ENABLED=true). - API key rotation (
MEOWKIT_GEMINI_API_KEY_2/3/4) for free-tier throughput (4x). - Default image model: Nano Banana 2 (
gemini-3.1-flash-image-preview). --resolution low-resflag for video analysis (62% token savings).- Media pre-optimization via ffmpeg (optional, 10–20% savings).
- Cost estimation for video analysis in
--verbosemode.
Improvements
MEOWKIT_env var prefix with backward-compat fallback to legacy names.DEFAULT_PROMPTSrequest structured JSON output (~50% more token-efficient).- Output truncation enforced at 6000 chars (CJK-safe).
media_resolutiondefaults per modality (image=high, pdf=medium, video=low).
2.3.7 (2026-04-12) — The Copy-Cat Release
New Skills
| Skill | Purpose |
|---|---|
mk:chom | Analyze and replicate features from external systems, repos, apps, or ideas into any project. 6-phase workflow: Recon → Map → Analyze → Challenge (HARD GATE) → Decision → Handoff. |
Features
- Smart input routing — auto-detects git URLs (clone + scout), web URLs (web-to-markdown), local paths, freeform text (researcher), screenshots (multimodal).
- 7 challenge questions — Necessity, Stack Fit, Data Model, Dependency Cost, Effort vs Value, Blast Radius, Maintenance Burden.
- Risk scoring — 0–2 proceed, 3–4 resolve first, 5+ reject.
- Two modes —
--analyze(full workflow → Replication Spec) and--compare(analysis only → Comparison Report).
2.3.6 (2026-04-11)
Removals
- Unused files removed.
2.3.5 (2026-04-11) — CEO Review Layered Verification
Highlights
Redesigns mk:plan-ceo-review from single-pass deep review to layered verification pipeline. Strengthens decision quality without changing the 4-mode system.
Features
- Pre-screen gate (Layer 0–1) — mode-aware placeholder scan, structural completeness check, requirements coverage mapping. Returns for amendment, never rejects.
- Two-lens evaluation (Layer 3) — Intent Alignment + Execution Credibility. Each grades PASS/WARN/FAIL. Any FAIL → NEEDS REVISION.
- Severity tiers — all findings classified BLOCKER / HIGH-LEVERAGE / POLISH.
- Adversarial necessity — each section must surface ≥1 finding or document why clean. Prevents rubber-stamping.
- Append-only output —
## CEO Reviewblock appended to plan.md (never overwrites). - Merged Failure Analysis — Error & Rescue Map + Failure Modes Registry combined into single table with severity column.
Improvements
plan-creator step-08auto-suggests CEO review after plan creation (gated byplanning_mode).harness step-01suggests CEO review after product spec.
2.3.4 (2026-04-11) — Centralized Dotenv Loading
Highlights
Project-level .claude/.env support so all hooks and handlers can read MEOWKIT_* env vars without polluting shell profiles.
Features
- Shared dotenv loader
lib/load-dotenv.shsourced by all 11 shell hooks; noeval, usesprintenvfor safe key checking. - Inline parser in
dispatch.cjsloads.claude/.envfor all 8.cjshandlers (zero external dependencies). .env.exampletemplate with all 19 documented env vars across 5 categories (Core, Harness, Summary, Memory, Hook Controls).- Precedence: shell
exportalways wins over.env(no-override semantics).
Removals
- CLI package builds removed from
release.sh— harness releases no longer trigger CLI package builds. Build step replaced with JSON config validation (settings.json,handlers.json,metadata.json).
2.3.3 (2026-04-11) — The Wiring Integrity Release
Highlights
5-agent parallel red-team audit of the full MeowKit harness. 7 critical breakpoints, 12 high-severity issues, and 30 medium/low cleanup items fixed across 25+ files.
Bug Fixes
- Gate 2 NON-NEGOTIABLE violation —
fast.mdandcost-saver.mdmodes auto-approved Gate 2 without human confirmation; now require explicit human approval. - TDD sentinel persistence —
--tddflag wrote sentinel to.claude/session-state/but session reset clearedsession-state/at project root (different dirs); sentinel now cleared on new session. - Memory system dead by default —
post-session.shexited onstandardprofile, disabling memory capture, cost tracking, and trace records; now runs by default. - Phantom agent dispatch —
mk:cookreferenced 4 nonexistent agents; remapped to real agents. - Memory path wrong system-wide — CLAUDE.md + 19 skills referenced
memory/instead of.claude/memory/; all paths corrected. - Model detector silent failure —
model-detector.cjsguard onctx.hook_event_namesilently killed detection when field absent. - Config file missing —
meowkit.config.jsonreferenced by 4+ consumers but never existed; created with version + features object. - Budget thresholds — code defaults $10/$25, docs said $30/$100; aligned to $30/$100 with
MEOWKIT_BUDGET_CAPoverride. - 8 orphaned skills (
api-design,build-fix,database,decision-framework,figma,intake,jira,verify) added to skill registry. - 4 phantom skill refs in commands (
/arch,/audit,/canary,/ship) fixed to actual skill names. - ADR path conflict —
/archcommand wrote todocs/adrs/but architect agent wrote todocs/architecture/adr/; unified. - TURN_GAP default —
harness-rules.mdsaid:-5, code was:-30; docs aligned to code.
New Commands
/harness— created missing slash command for primary green-field build entry point.
2.3.2 (2026-04-11) — The Agent-Skills Integration Release
Highlights
Integrates correctness patterns from Anthropic's agent-skills system: 6 core operating behaviors, per-skill failure catalogs, phase composition contracts, and lifecycle-aware skill routing.
Features
core-behaviors.md— 6 mandatory operating behaviors (Surface Assumptions, Manage Confusion, Push Back, Enforce Simplicity, Scope Discipline, Verify Don't Assume) + 10 failure modes. Loaded via CLAUDE.md preamble.- Per-skill failure catalogs — Common Rationalizations + Red Flags for
mk:cook,mk:plan-creator,mk:review. Merged entries intomk:fixgotchas. - Phase composition contracts — embedded in CLAUDE.md; documents expects/produces/breaks-if-missing per phase.
- Lifecycle routing table — task signal → phase → skill mapping in
mk:agent-detector. Surfaced viamk:help.
2.3.1 (2026-04-11) — The Plan Creator Intelligence Release
Highlights
Plan-creator's biggest upgrade since v1.3.2. 4-persona red team, --deep mode, --tdd composable flag, standalone subcommands, and enhanced validation framework.
Features
- 4-persona red team — Security Adversary + Failure Mode Analyst added to existing 2 personas. Phase-count scaling: 1–3 phases = 2 personas, 4–5 = 3, 6+ = 4.
- Separate
red-team-findings.mdfile with full 7-field detail, linked from plan.md summary. --deepmode — hard pipeline + per-phase scouting with file inventory and dependency maps per phase.--tddcomposable flag — combines with any mode; injects Tests Before/Refactor/Tests After/Regression Gate into phase files.- Memory capture at Gate 1 — planning decisions persisted after approval.
- Solution design checklist — 5-dimension trade-off analysis reference for Architecture/Risk sections.
New Commands
/mk:plan red-team {path}— runs adversarial review on existing plans./mk:plan validate {path}— runs critical question interview on existing plans./mk:plan archive— scans completed plans, optionally captures learnings, archives or deletes.
Bug Fixes
- step-03 duplicate section label —
3iappeared twice (Parallel + Two-Approach); renamed to3i/3j. - phase-template wrong step reference — hydration reference said step-05 instead of step-08.
- step-08 incomplete schema —
.plan-state.jsonmissingdeepandproduct-levelas validplanning_modevalues.
2.3.0 (2026-04-11) — The Hook Dispatch Release
Highlights
Node.js hook dispatch system with 8 handler modules, cook verification flags, review skeptic anchoring, structured memory filtering, and tool output limits. TDD enforcement is now opt-in.
Features
- Central
dispatch.cjswithhandlers.jsonregistry — parses stdin once, routes to 8 handlers across 4 lifecycle events. model-detectorhandler — auto-detects model tier + density from SessionStart stdinmodelfield; replacesMEOWKIT_MODEL_HINTas primary source.orientation-ritualhandler — resumes from checkpoint on session resume.build-verifyhandler — compile/lint after file edits, cached by file hash (ported from shell to Node.js).loop-detectionhandler — warns at 4 edits, escalates at 8.budget-trackerhandler — token cost estimation with $10 warn / $25 block session-level thresholds.auto-checkpointhandler — crash-recovery every 20 tool calls + phase transition detection.checkpoint-writerhandler — sequenced checkpoint with git state + budget snapshot on Stop.cook --verify— advisory browser check after review (~$1).cook --strict— fullmk:evaluateafter review; FAIL blocks ship (~$2–5).cook --no-strict— suppress auto-strict trigger.- Auto-strict — scale-routing
level=highauto-enables--strictin cook. - Review skeptic anchoring — re-anchor prompt injected per adversarial persona dispatch.
- Structured memory —
lessons.mdYAML frontmatter with two-phase domain-filtered loading. - Tool output limits — Glob
head_limit=50, Grephead_limit=20, Readoffset+limitfor >500 lines.
Improvements
- TDD now opt-in via
--tddflag orMEOWKIT_TDD=1; default mode skips RED-phase gate.
2.2.2 (2026-04-10) — Homoglyph Detection Refinement
Improvements
mk:web-to-markdowninjection_detect.pyhomoglyph detection now flags only mixed-script tokens (Latin + Cyrillic within a single word) instead of consecutive foreign characters. Reduces false positives on legitimate multilingual content while still catching homoglyph spoofing.
2.2.1 (2026-04-10) — Bug Fix
Bug Fixes
mk:web-to-markdownrobots_cache.py_fetch_robots_txt()raisedUnboundLocalError. A function-localimport urllib.requestshadowed the module-levelurllib.robotparserbinding, breakingrp = urllib.robotparser.RobotFileParser(). Hoistedimport urllib.requestto module-level imports.
2.2.0 (2026-04-08) — Generator/Evaluator Harness
Highlights
Largest architectural addition since 1.0.0. Autonomous multi-hour build pipeline, adaptive scaffolding density per model tier, middleware layer, trace-driven meta-loop, and a conversation summary cache — without loosening any hard gates.
New Skills
| Skill | Purpose |
|---|---|
mk:autobuild | Autonomous green-field build pipeline with generator/evaluator split, adaptive density, 3-round iteration loop, budget tracking ($30 warn / $100 block / user cap). |
mk:sprint-contract | File-based sprint contract negotiated between generator and evaluator before source edits begin. Enforced by gate-enforcement.sh in FULL density. |
mk:rubric | Weighted rubric loader; reads .claude/rubrics/, validates weights sum to 1.0. |
mk:evaluate | Behavioral grader with active verification; skeptic persona, drives running build, rejects static-analysis-only verdicts. |
mk:trace-analyze | Scatter-gather trace log analyzer; reads .claude/memory/trace-log.jsonl, feeds meta-improvement loop with mandatory HITL gate. |
mk:benchmark | Canary suite (quick 5-task / full 6-task tiers) for dead-weight audit baselines on model upgrades. |
mk:web-to-markdown | Static-by-default URL → clean markdown with SSRF guard, 6-pass injection scanner, DATA boundary wrap, fetch persistence with manifest, robots.txt cache, per-domain throttle. Tier-4 fallback below mk:docs-finder. |
New Agents
evaluator— skeptic persona distinct from reviewer. Drives running build, re-anchors persona per criterion, propagates FAIL verdicts hard. Self-evaluation forbidden — always runs in fresh context.
New Commands
/mk:summary— conversation summary cache inspector.--statushealth check,--forcere-summarize,--clearreset.
Features
- 4 new middleware hooks:
post-write-build-verify.sh,post-write-loop-detection.sh,pre-completion-check.sh,conversation-summary-cache.sh(Haiku-powered, secret-scrubbed, throttled by size/turns/growth). - 2 new rules files:
harness-rules.md(11 rules for generator/evaluator discipline),rubric-rules.md(10 rules for calibration). - Adaptive density auto-selected per model tier (TRIVIAL=MINIMAL, STANDARD=FULL, COMPLEX/Opus 4.5=FULL, COMPLEX/Opus 4.6+=LEAN). Override via
MEOWKIT_AUTOBUILD_MODE.
CLI
- Schema-driven
system-depsregistry (packages/mewkit/src/lib/system-deps-registry.ts) — replaces hardcoded ffmpeg/imagemagick install paths with a typed registry. Skills declareoptional_system_deps; CLI parses and validates against the registry. mewkit doctor— generic registry loop replaces hardcoded checks. Playwright entry has dedicated two-probedoctorCheck.mewkit init+setup --system-deps— flat list prompt; FFmpeg / ImageMagick / Playwright + Chromium iterated from registry insertion order.
Bug Fixes
privacy-block.shexit code corrected — was usingexit 1(non-blocking per Claude Code hooks docs). Changed toexit 2so the hook actually blocks. Block messages moved stdout → stderr.
Migration Notes
export MEOWKIT_MODEL_HINT=opus-4-6in your shell profile if on Opus 4.6 — enables LEAN density auto-detection. Without it, Opus 4.6 users silently get FULL density.- Try
/mk:autobuild "build me a THING"for your next green-field build. - Run
/mk:summary --statusafter your first long session to verify the conversation cache is healthy.
Breaking Changes
- Hooks now read JSON on stdin via
lib/read-hook-input.shinstead of positional$1. Legacy fallback preserved for existing hooks; custom hooks should migrate. - No CLI, agent, or skill syntax changes. No gates loosened.
2.1.0 (2026-04-04)
Highlights
Custom statusline, dependency management, SEO, and mewkit CLI improvements.
Features
.claude/statusline.cjs— 5-line ANSI status bar for Claude Code: model+tier, context usage bar with/clearwarning at 60%/80%, active plan+phase tracking, 5h/weekly rate limits with reset countdown, token usage breakdown.- Settings merge preserves new top-level keys (like
statusLine) during updates. - Sitemap generation,
robots.txt, OG/Twitter meta tags, canonical URLs.
CLI
- Install prompt during init — asks "Install Python skill dependencies?" after project description (default: no). Installs into
.claude/skills/.venvonly. - Per-skill
requirements.txt— walksskills/*/scripts/requirements.txt, merges and deduplicates with input validation. mewkit setup --only=deps— manual re-run with smart skip (verifies already-installed).mewkit doctorpip check — verifies installed pip packages against expected skill dependencies.- Version picker — shows top 4 versions + "Enter version manually..." option.
- Cross-platform Python detection —
whereon Windows,pylauncher support. - Security — package name validation, path traversal prevention, 120s pip timeout,
execFileSyncarray args.
2.0.0 (2026-04-04) — The Leverage Release
Highlights
Extracted high-leverage patterns from ECC's 38-agent ecosystem. 5 new skills, 17 reference merges, hook profiling, naming cleanup.
New Skills
| Skill | Purpose |
|---|---|
mk:decision-framework | Operational decision architecture: classify → rules → score → escalate → communicate. 5 references + 3 domain examples. |
mk:verify | Unified verification: build → lint → test → type-check → coverage. Fail-fast. Auto-detects 5 project types (JS/TS, Python, Go, Ruby, Rust). |
mk:api-design | REST/GraphQL patterns: resource naming, HTTP methods, status codes, pagination, versioning, rate limiting, error formats. |
mk:build-fix | Build error triage: detect language from error output, classify fixability, chain into mk:verify. Max 3 attempts then escalate. |
mk:database | Schema design, migration patterns, query optimization. PostgreSQL primary. |
mk:jira | Jira execution via Atlassian MCP: 8 operation categories, 4-tier safety framework, 50+ JQL templates, sprint management. |
mk:figma | Figma design analysis via Figma MCP: 3 modes (analyze/implement/tokens), design token extraction (CSS/Tailwind/JSON). Fallback: PNG export + multimodal. |
mk:intake | Tool-agnostic ticket/PRD analysis with 8-dimension completeness scoring, media fallback chain, injection defense. |
Features
- 17 reference merges across 10 skills (RCA selection, plan-creator ops/cold-start/mutation, QA browser checklist, agent-detector token budget, office-hours product lens, typescript review checklist, cook loop safety, review iterative protocol, frontend anti-slop, testing E2E best practices).
- Hook runtime profiling —
MEOW_HOOK_PROFILEenv var:strict(all),standard(default),fast(gate + privacy only). Safety-critical hooks never skip. - Mandatory simplification —
mk:cooknow requiresmk:simplifybetween Phase 3 (Build) and Phase 4 (Review). - Proactive learning —
learning-observer.shPostToolUse hook detects churn patterns, feeds into retroactive capture.
Removals / Renames
mk:shipping→mk:ship.mk:documentation→mk:document-release.mk:debug→mk:investigate.- (Redirects in place for 2 releases.)
Improvements
- MICRO-TASK TDD exemption — non-production code <30 lines exempt from TDD if classified MICRO-TASK by orchestrator.
- Staged parallel mode — overlapping files handled sequentially, non-overlapping in parallel.
- Memory capture enhancement — budget 2 min → 5 min, markers 3 → 5, CRITICAL/SECURITY markers always processed,
--capture-allflag. mk:scale-routing— 4-layer detection (CSV + task content + context + confidence scoring), 8 task type classifications, optionalproduct-areas.yaml.
CLI
npx mewkit initnow prompts for optional system deps (FFmpeg, ImageMagick).npx mewkit setup --system-depsfor deferred install.npx mewkit doctorreports status.
1.4.0 (2026-04-03) — The Plan Intelligence Release
Highlights
Dedicated plan red-team with CK-style adjudication, plan-specific personas, and new workflow modes.
Features
- Plan red-team extraction — monolithic step-04 split into steps 04–07; dedicated
step-05-red-team.mdwith 7-field findings (Severity / Location / Flaw / Failure Scenario / Evidence / Suggested Fix / Category). - Agent adjudication (Accept/Reject + rationale), 3-option user review gate (Apply all / Review each / Reject all), deduplication, severity sorting, 15-finding cap.
- 2 new plan-specific personas:
plan-assumption-destroyer(unvalidated scale, dependency, team, infrastructure, timeline, integration assumptions) andplan-scope-complexity-critic(YAGNI violations, over-phasing, scope creep, premature abstraction). - Dynamic persona scaling — phase-count thresholds: 1–3 phases = 2 personas, 4–5 = 3, 6+ = 4.
- Red Team Review section — auditable finding table written to plan.md.
workflow-fast.md— compact path (skips research, scout, red-team, interview).--parallelmode — file ownership matrix in plan.md## Execution Strategy, parallel group task hydration, max 3 groups.--twomode — 2 competing approach files + trade-off matrix; user selects approach at step-04.
Improvements
mk:plan-creatorworkflow expanded from 6 steps (00–05) to 9 steps (00–08)..plan-state.jsonschema bumped to v1.1 with optionalparallel_groupsandselected_approachfields.- 6 new gotchas and 2 new reference files (
parallel-mode.md,two-approach-mode.md).
1.3.4 (2026-04-02) — Hook path resolution fix
Bug Fixes
- All hooks use
$CLAUDE_PROJECT_DIRfor absolute paths insettings.jsonand CWD guard. Fixes "No such file or directory" when CWD differs from project root.
1.3.3 (2026-04-02) — The Hook Safety Release
Bug Fixes
cost-meter.sh— always exited 1 becausesettings.jsonpasses no arguments; now exits 0 for missing args.post-write.sh— exited 1 on empty/missing file path; now exits 0 (matches PreToolUse safety fallback).pre-task-check.sh— usedexit 2for WARN findings; Claude Code treats non-zero as error; now exits 0.
1.3.2 (2026-04-01) — The Plan Quality Release
Highlights
Complete redesign of mk:plan-creator to match/exceed ck-plan across 15 dimensions.
Features
- Step-file architecture — SKILL.md (thin entry) + workflow.md + 6 step files. JIT loading.
- Multi-file phase output —
plan.mdoverview (≤80 lines) +phase-XXfiles (12-section template each). - Scope challenge — Trivial → exit, simple → fast, complex → hard. User chooses EXPANSION / HOLD / REDUCTION.
- Plan red team — 2 adversarial personas (Assumption Destroyer + Scope Critic) review plans before validation (hard mode).
- Research integration — bounded (2 researchers, 5 calls each), findings cited in phase Key Insights.
- Sync-back —
.plan-state.jsoncheckpoint enables cross-session resume. - Critical-step tasks —
[CRITICAL]/[HIGH]todo items get dedicated Claude Tasks. - Richer frontmatter —
description,tags,issue,blockedBy/blocksfields.
1.3.1 (2026-03-31) — The Red Team Depth Release
Highlights
Hybrid adversarial persona system for mk:review.
Features
- Scope gate — step-01 classifies diffs as minimal (≤3 files, ≤50 lines, no security, domain ≠ high) or full. Minimal runs Blind Hunter only.
- Hybrid persona system — Phase B: 4 adversarial persona subagents (Security Adversary, Failure Mode Analyst, Assumption Destroyer, Scope Complexity Critic) run after base reviewers, informed by Phase A findings. 2-at-a-time batching.
- Forced-finding protocol — zero findings triggers 1 re-analysis with "look harder" prompt. Prevents rubber-stamp approvals.
- 4-level artifact verification — Exists, Substantive, Wired, Data Flowing checks in verdict step.
1.3.0 (2026-03-31) — The Integration Integrity Release
Highlights
Full red-team audit: 98 components, 11 batches, 43 criticals found, 42 fixed.
Bug Fixes
- Hooks enforcement restored —
gate-enforcement.shandprivacy-block.shwere completely non-functional (argument mismatch). Fixed argument passing; all 9 hooks now registered and working. - Agent naming standardized — 5 phantom
subagent_typevalues inTask()calls mapped to real agents. - 7-phase model everywhere —
workflow-orchestratormigrated from 5-phase to 7-phase. Gate 2 no longer bypassable. - Path consistency — plan files, memory, ADRs, scripts all use canonical full paths.
- Verdict taxonomy unified — PASS/WARN/FAIL everywhere. Review dimensions aligned (Correctness/Maintainability/Performance/Security/Coverage).
- Python venv enforced — all scripts use
.claude/skills/.venv/bin/python3. SessionStart warns if missing. pre-ship.shguarded — no longer runs test suite on every Bash call, only on git commit/push.- Security BLOCK → FAIL — security agent BLOCK verdict now automatically fails Gate 2 Security dimension.
Improvements
- Created missing templates: party prompts (agent-selector, synthesis), team-config ownership map.
- Created
mk:fix/references/gotchas.md(7 anti-patterns). - Fixed
mk:development/references/skill-loader.md— all 13+ broken paths corrected. - Fixed mock guidance contradiction in tester agent (unit tests may mock, integration tests must not).
- Honest documentation:
mk:carefulnow states 8/30 patterns are hook-enforced (was claiming all 30).
1.2.1 (2026-03-31)
Bug Fixes
mk:cookPhase 6 (Reflect) now spawns a dedicated subagent formk:memorysession-capture. Previously memory write was an inline bullet point that could be skipped if session was interrupted. Now enforced as MUST-spawn.
1.2.0 (2026-03-31) — The Memory Activation Release
Highlights
Fixed the dormant memory system and enriched it with cross-framework insights from 6 agent frameworks.
Features
- Memory capture pipeline —
post-session.shnow writes structuredNEEDS_CAPTUREmarkers instead of invisible HTML comment placeholders. - Retroactive capture — Phase 0 processes pending markers from previous sessions (max 3 markers, 2-min budget).
- Live capture — Phase 5 captures non-obvious decisions, corrections, and rejected approaches before shipping.
- 3-category extraction — patterns, decisions, or failures.
- New
patterns.jsonfields —category,severity,applicable_when(all optional, backward compatible). - Stronger promotion criteria — patterns promoted to CLAUDE.md only when frequency ≥ 3, severity = critical OR frequency ≥ 5, generalizable, saves ≥ 30 min. Human approval still required.
- Consolidation rubric — 4-branch classification (clear match auto-merge / ambiguous ask / no match create new / no signal skip).
1.1.0 (2026-03-30) — The Reasoning Depth Release
Highlights
Deeper review reasoning, resumable builds, and systematic coverage mapping. Inspired by comparative analysis of BMAD-METHOD, ClaudeKit-Engineer, Khuym Skills, and Get-Shit-Done.
New Skills
| Skill | Purpose |
|---|---|
mk:elicit | Structured second-pass reasoning after review or analysis. 8 named methods (pre-mortem, inversion, red team, Socratic, first principles, constraint removal, stakeholder mapping, analogical). |
mk:validate-plan | 8-dimension plan quality validation. Auto for COMPLEX tasks, optional for STANDARD. |
mk:nyquist | Test-to-requirement coverage mapping. Reads plan acceptance criteria + test files, produces gap report showing untested requirements. |
Features
mk:reviewnow recommends runningmk:scoutbefore review for complex changes (3+ files).- After review verdict, users can run
mk:elicitfor deeper analysis through a named reasoning method. - Beads pattern — COMPLEX tasks (5+ files) decompose into atomic, resumable work units. Each bead has acceptance criteria, file ownership, and ~150 lines size. Progress tracked in
session-state/build-progress.json. Interrupted builds resume from last completed bead. - Subagent Status Protocol — all subagents report structured status (DONE, DONE_WITH_CONCERNS, BLOCKED, NEEDS_CONTEXT) with controller handling rules.
Improvements
- Sub-agent type classification — support agents now have
subagent_typein frontmatter: advisory (brainstormer, researcher, ui-ux-designer), utility (git-manager), escalation (journal-writer). - Pre-delegation checklist added to
orchestration-rules.md: work context, plan reference, file ownership, acceptance criteria, constraints.
1.0.0 (2026-03-30) — The Disciplined Velocity Release
Highlights
The biggest MeowKit update yet. 13 new capabilities inspired by deep analysis of BMAD-METHOD and ClaudeKit-Engineer. Theme: scale throughput while maintaining absolute discipline.
New Skills
| Skill | Purpose |
|---|---|
mk:scale-routing | Domain-to-complexity CSV routing. Fintech, healthcare, IoT auto-force COMPLEX tier. User-extensible. |
mk:project-context | Generate / update agent constitution. |
mk:party | Multi-agent deliberation sessions (2–4 agents debate architecture decisions with forced synthesis). Discussion only — no code. |
mk:worktree | Git worktree lifecycle management. |
mk:task-queue | Task claiming with ownership enforcement. |
mk:help | Pipeline navigation assistant. |
mk:debug | Structured debugging: reproduce → isolate → root cause → fix → verify. |
mk:simplify | Post-implementation complexity reduction (between Build and Review). |
mk:team-config | Parallel agent team setup with ownership maps and worktrees. |
Features
- Planning Depth Per Mode — 7 modes declare researcher count:
strict/architectrun 2 parallel researchers;default/auditrun 1;fast/cost-saver/documentskip research. - Multi-Layer Adversarial Review —
mk:reviewnow runs 3 parallel reviewers (Blind Hunter, Edge Case Hunter, Criteria Auditor) with post-review triage. Catches 2–3x more bugs than single-pass review. - Anti-Rationalization Hardening — agents cannot downgrade complexity, minimize tests, skip security, or dismiss WARN verdicts without 3-part justification.
- Project Context System —
docs/project-context.mdis the agent constitution. All agents load it at session start. - Parallel Execution & Teams — COMPLEX tasks with independent subtasks run up to 3 parallel agents with git worktree isolation. Integration test required after merge.
- Step-File Architecture — complex skills decompose into JIT-loaded step files. First skill:
mk:review(4 steps). - Hook-Based Enforcement — 3 shell hooks upgrade behavioral rules:
privacy-block.sh(blocks sensitive reads),gate-enforcement.sh(blocks writes before Gate 1),project-context-loader.sh(auto-loads context).
Breaking Changes
- None. All additions are backward-compatible.
0.1.2 (2026-03-29)
Features
- Interactive version selection when running
npm create meowkit@latest. git-manageragent for commit/push workflows.- Confirmation step before Gemini API key input.
0.1.1 (2026-03-29)
Removals
- Excluded runtime dirs (
session-state,memory,logs) from release zip and git tracking.
0.1.0 (2026-03-29)
Highlights
Initial pre-release of MeowKit agent toolkit.
Features
- Core skill set (
cook,fix,ship,review,memory,testing). - Sequential thinking and fix diagnosis references.