Changelog
All notable changes to this project will be documented in this file. The format loosely follows Keep a Changelog, and this project adheres to Semantic Versioning.
[2.1.0] - 2026-05-26
Sync with upstream v2.19.1 — introduces the workflow artifact gate, which turns the mk:cook / mk:fix review process into a file-backed contract instead of a prompt checklist. Reviewers now produce JSON artifacts that the gate validates before any commit, ship, push, PR, or deploy action.
Added
-
Workflow artifact gate — new hook +
claude/hooks/workflow-artifact-gate.cjsand four sub-modules (validator,artifact-locator,stage-detector,artifact-schema). Validates 5 required JSON artifacts before any finalize / commit / ship / push / pr / deploy action:Artifact Purpose context-snippets.jsonevidence the reviewer actually read code risk-gate.jsonrisk classification + autoStopRequiredsignalverification.jsontest / typecheck / build evidence review-decision.jsonfinal PASS/FAIL with criticals + warnings adversarial-validation.jsonrequired when --auto, high-risk, or large-diffHook is opt-in via
.claude/.mk.json(hooks.workflow-artifact-gate: true). Manual CLI mode always validates and exits non-zero when the gate blocks:node .claude/hooks/workflow-artifact-gate.cjs --stage finalize \ --artifact-dir plans/<plan>/reports/harness/Artifact directory conventions:
- Plan workflow:
plans/<plan-dir>/reports/harness/ - No-plan workflow:
plans/reports/harness/<timestamp-slug>/ - Active pointer:
.claude/workflow-artifacts.json
- Plan workflow:
-
Secret leak scan in validator — refuses to validate artifacts containing unredacted
Authorization: Bearer …,Cookie: …,API_KEY=…/TOKEN=…/SECRET=…/PASSWORD=…, GitHub tokens (ghp_*,gho_*,ghu_*,ghs_*,github_pat_*), OpenAI keys (sk-*), AWS access keys (AKIA*), or PEM private keys. Artifacts must redact or mask these before validation passes. -
workflowArtifactGateconfig block inclaude/hooks/lib/mk-config-utils.cjsdefaults:workflowArtifactGate: { enabled: true, softStages: ['finalize', 'commit'], hardStages: ['ship', 'push', 'pr', 'deploy'], highRiskAutoStop: true } -
MyKit JSON schema at
claude/schemas/mk-config.schema.json— full schema for.claude/.mk.json, including the new artifact gate section. Wire this into your editor ("$schema") for autocomplete on.mk.json. -
chrome-profileskill — manage real Chrome profiles for browser automation that needs the user’s actual cookies / session / extensions (different frommk:agent-browserwhich uses a fresh tool-managed browser). Includes install/uninstall scripts andchrome_profile_cli.py. -
claude/skills/_shared/references/workflow-artifacts.md— single source of truth for the artifact contract, shared by bothcookandfixskills. -
settings.jsonregistration —workflow-artifact-gate.cjsruns onUserPromptSubmitso it can advise (soft) onfinalize/commitstages even before the user types a hard-stage command. Hard stages (ship / push / pr / deploy) block when artifacts are missing or invalid.
Changed
mk:cookreview cycle policy —score >= 9.5is now only a confidence signal, never sufficient for approval on its own. Approval requires:review-decision.decision == PASSAND- artifact validator passes AND
critical_count == 0
mk:cookauto mode — high-risk diffs (auth, payments, DB schema, migration, public API, CI/deploy/release/production config, destructive FS ops, large diff) now triggerrisk-gate.autoStopRequired = trueand stop the auto pipeline pending human approval viaAskUserQuestion. Previously--autoskipped all gates.mk:fixreview cycle — now writes the same 5-artifact set after diagnose AND after fix steps, with the artifact gate validating both.code-revieweragent — emitsreview-decision.jsonandadversarial-validation.jsoninstead of free-form prose. Score remains in the artifact but no longer triggers auto-approve.subagent-init.cjs— passes workflow context (current stage, artifact dir pointer) into subagent system prompts so reviewers know which artifact directory to write to.descriptive-name.cjs— minor tweak to file-naming guidance text.lib/context-builder.cjs— small refactor to share helpers with the new artifact gate.
Synced files from upstream v2.19.1
| Path | Notes |
|---|---|
claude/skills/cook/SKILL.md + README.md | new HARD-GATE wording, artifact contract |
claude/skills/cook/references/review-cycle.md | + Required Review Artifacts section, new approval policy |
claude/skills/cook/references/workflow-steps.md | auto mode now respects autoStopRequired |
claude/skills/cook/references/intent-detection.md | minor edits |
claude/skills/cook/references/subagent-patterns.md | new file |
claude/skills/fix/SKILL.md | new HARD-GATEs aligned with cook |
claude/skills/fix/references/{review-cycle,prevention-gate,workflow-deep,workflow-standard,workflow-ui}.md | artifact wiring |
claude/skills/code-review/SKILL.md + 14 reference files | synced from upstream ck-code-review/ (folder renamed to code-review/ for MK) |
claude/skills/mk-plan/SKILL.md | minor edits |
claude/skills/mk-debug/SKILL.md | minor edits |
claude/skills/test/SKILL.md | minor edits |
claude/agents/code-reviewer.md | JSON artifact emission |
claude/hooks/subagent-init.cjs | workflow context passing |
claude/hooks/descriptive-name.cjs | guidance tweak |
claude/hooks/lib/context-builder.cjs | shared helpers |
Identity normalization
All upstream ck markers stripped during the sync:
(?<![a-zA-Z])ck:slash-command pattern →mk:(does not touchcheck:,block:,track:,feedback:)require('./lib/ck-config-utils.cjs')→require('./lib/mk-config-utils.cjs')ck-code-review/references →code-review/(MK’s folder name; the skill itself was alreadyname: mk:code-review)claudekit/ClaudeKit/ClaudeKit Engineer→my-kit/MyKit.ck.json/.ckignore→.mk.json/.mkignoreclaudekit.cc→my-kit.local\ck` unavailableCLI fallback messages →`mk` unavailable`
Verified zero leaks across all production files (grep exclusion list includes only the strip-identity skill itself, which intentionally contains the patterns it strips).
Migration
Existing v2.0.x installs upgrade cleanly with:
npx my-agent-kit@latest init . --upgrade --force
The artifact gate is off by default — no existing workflow changes unless you opt in. To enable per project:
// .claude/.mk.json
{
"hooks": {
"workflow-artifact-gate": true
}
}
Once enabled, mk:cook and mk:fix reviews will write artifacts; finalize / commit / ship / push / PR / deploy actions block until the validator passes. To verify manually before a release:
node .claude/hooks/workflow-artifact-gate.cjs --stage ship \
--artifact-dir plans/<your-plan>/reports/harness/
Behavioral note (not breaking, but worth knowing)
If you previously relied on mk:cook --auto racing through high-risk changes (auth / payments / DB schema / CI / deploy / destructive FS) it will now stop on the first risk trigger and ask. To preserve old behavior you can leave the artifact gate off, but the new policy is the recommended default.
[2.0.1] - 2026-05-19
Patch release fixing an incomplete identity rename in v2.0.0.
Fixed
- Slash command prefix leak — 246 files still referenced the old
ck:command prefix (e.g./ck:cook,ck:docs-seeker) instead ofmk:. The v2.0.0 identity sweep used a word-boundary regex that silently skipped theck:slash-command pattern. Users saw/ck:docsin the command palette instead of/mk:docs. All 246 files corrected with a boundary-safe substitution (does not touchcheck:,block:,track:,feedback:). - Config filename references — documentation and helper scripts pointed users at
.ck.json/.ckignore, but the actual kit ships.mk.json/.mkignore. Following the old docs created config files the kit never read. All references corrected.
Upgrade
npx my-agent-kit init . --upgrade --force
No behavior change beyond correct command names — purely a naming-consistency fix. If you installed v2.0.0 and saw /ck: commands, upgrade to v2.0.1.
[2.0.0] - 2026-05-12
Major release synchronizing with upstream v2.17 plus a structural refactor of the kit layout. Contains breaking changes for existing installs — see the migration guide below.
Highlights
- 6 new skills ported from upstream:
agentize,cti-expert,excalidraw,graphify,show-off,xia fixskill v2.0 — rewritten with a structured diagnosis pipeline (root cause → reproduction → minimal fix → regression test)mk:planoverhaul — scoped plans, verification roles, canonical phase-file template, CLI-only plan creation- Statusline — refactored to a config-driven modular renderer with theme parity across compact / minimal / full modes
- Signal-driven simplify gate — opt-in hook (
simplify-gate.cjs) that suggests code simplification only when activity signals warrant it - Quality gates — schema contract for skills, format compliance check, cross-reference integrity, metadata deletion verification
- Worktree skill —
--baseflag,status prunesubcommand, submodule setup, forward-slash branch names
Added
New skills
| Skill | What it does |
|---|---|
agentize | Convert an existing codebase into a CLI tool and MCP server |
cti-expert | Cyber Threat Intelligence / OSINT investigation playbook |
excalidraw | Generate Excalidraw .excalidraw diagram files |
graphify | Build a knowledge graph from notes, code, or docs |
show-off | Showcase / demo presentation generation with readiness chain |
xia | Repo-porting and repo-analysis workflow |
New rules
claude/rules/skill-domain-routing.md— intent-based decision tree for picking the right skill from a problem descriptionclaude/rules/skill-workflow-routing.md— routing rules for chaining skills into a workflow
New agents
code-simplifier— proactive code simplification specialist (replacessimplifier, with stronger signal-driven invocation)journal-writer— writes development journal entriesmcp-manager— manages MCP server registration
New hooks
simplify-gate.cjs— signal-driven simplify suggestion gate (opt-in, default off)usage-quota-cache-refresh.cjs— refreshes API usage quota cache between sessions- Hardened
scout-block.cjs— fixed Windows absolute paths handling
Install / build
mk-init.sh --upgrade— clean upgrade mode. Readsclaude/metadata.jsondeletions list and drops removed paths from the target’s.claude/before copying fresh contentclaude/metadata.json— kit manifest with version, deletions list (for clean upgrades), and build metadataclaude/statusline.cjs— modular, config-driven statusline renderer
Changed
Repository layout (BREAKING)
The canonical kit content moved from .claude/ to claude/ (no leading dot).
Before After
───────────────────── ───────────────────────
my-agent-kit/.claude/ → my-agent-kit/claude/
└─ (kit content) └─ (kit content — source of truth)
Target project (unchanged)
target/.claude/ target/.claude/ ← still here, created by mk-init.sh
Why: separates source-of-truth kit content (claude/) from runtime Claude Code config (.claude/). The installer (mk-init.sh) copies `claude/* →