All notable changes to this skill are documented here.
- Node observer +
npx continuous-improvement backfill(#52) — replaces the bash thin-schema fallback that depended onjq. The newbin/observe.mjsreads stdin, parses the hook payload natively, and writes the rich event schema (tool_input.commandfor Bash,Edit.file_pathfor Edit/Write/Read,tool_outputfor tool_complete) without external dependencies.hooks/observe.shbecomes a two-phase shim: prefer the Node observer when present, fall back to the prior bash thin-schema path when not, so operators who do not re-runnpx continuous-improvement installsee no behavior change. The companionbackfillsubcommand walks existingobservations.jsonlfiles and tags every row withschema: "thin" | "rich"so the analysis pass can cleanly skip thin rows and surface a "X% thin" stat to operators. Idempotent; preserves operator data via.bakandobservations.corrupt.jsonlquarantine. Closes the audit-derived gap where 22,065 observations across 11 projects on ajq-less host yielded 0 auto-detected instincts. Live backfill against the maintainer's host: 25,077 rows tagged → 24,547 thin (97.9%), 530 rich (2.1%), across 14 projects. Proactive Roadmap Surfacingsection inwild-risa-balance(#53) — names the surface-don't-execute boundary explicitly. Trigger conditions (persistent roadmap, finished tasks implying next steps, drift, instinct/memory predictions); hard boundary citing global CLAUDE.md and Auto Mode rules; format with(surfaced — <source>)marker; anti-patterns (nagging, citation-free speculation, bundling surface with execution, inventing roadmaps).metainstinct pack (#50) — promotes the two cross-project reflection-instincts (skip-thin-observation-schema,parallelize-independent-tool-calls) from per-project YAML into a shared starter pack. Test loop drives offPACK_FLOORSso language packs keep ≥5 floor whilemetaships at ≥2.
- README install ergonomics (#50) —
jqlisted alongside Node and bash in Preconditions with per-OS install commands; new "Operator modes" section adjacent to install with both bash/zsh and PowerShell export syntax forCLAUDE_THREE_SECTION_CLOSE_DISABLED. - CONTRIBUTING.md
Source of truth: src/callout (#50) — hoisted as a one-line warning at the top of## Architecture; the existing edit-src-then-build workflow at lines 101-118 was correct but buried.
hooks/observe.shjq-missing one-shot warning (#50) — emits a single stderr line per host on the first invocation whenjqis absent on PATH, so operators learn the auto-instinct gap at install time instead of discovering weeks of thin-schema collection. Marker lives at~/.claude/.continuous-improvement-jq-warned, deliberately outside~/.claude/instincts/so directory iterators are unaffected.
- Audience-tier system in
wild-risa-balance— beginner emits 3–5 goal-driven items with no WILD/RISA labels; expert keeps the ≥7 floor (2 WILD + ≥5 RISA).proceed-with-the-recommendationPhase 1 validates against the tier contract instead of a flat floor, and the Phase 7 close renders the tier suffix in the heading (## Recommendation (expert|beginner)) so the audit trail records which tier produced the list. Recommendation: noescape valve in both tiers ofwild-risa-balanceandproceed-with-the-recommendation. When no real recommendation can be produced without padding, the close ships a literalnobody under the tier-suffixed heading — an explicit operator handoff signal (switch session, switch specialist agent, switch framing, sleep on it), never a silent skip. Padding to hit the floor is the failure mode this prevents.CLAUDE_THREE_SECTION_CLOSE_DISABLED=1operator opt-out forhooks/three-section-close.mjs. When set, the hook short-circuits before any enforcement or telemetry. Per-operator escape hatch for cases where end-of-turn reflection should run as internal thinking instead of visible output. Public default unchanged — the rule still fires for everyone else. Test infrastructure (buildIsolatedEnv()+ 5 manual env constructions) now strips the env var before spawning the hook so existing enforcement tests cannot silently disable themselves when the developer has the flag set.
- Locked the
noescape valve literals inverify:docs-substrings(102 → 112 assertions) and in thewild-risa-tierstest (22 → 32 assertions, 5 literals × 2 mirrors). Each lock carries a rationale string naming the behavior it defends so a future maintainer reading a failure understands why the literal is locked.
verify:everything-mirrorlint (npm run verify:everything-mirror) — walksplugins/continuous-improvement/and asserts every non-skill file has a byte-identical sibling at the same relative path under the repo root. Closes the drift-protection gap thatcheck-skill-mirror.mjsleft open forcommands/,hooks/,instinct-packs/,templates/,lib/,bin/mcp-server.mjs, andLICENSE. Currently passes 23 mirrored files. Allowlists the four plugin-only surfaces (.claude-plugin/manifests, the bundle README,hooks/hooks.json, the generatedskills/README.md).verify:allumbrella script — single contributor gate that runs all 5 verify lints + typecheck cheapest-first. Replaces the six-line per-command checklist inCONTRIBUTING.md.bin/pre-commit-block-strays.shpre-commit hook — refuses any commit whose staged paths match^.tmp-stop-e2e/or^nanobanana-output/. Belt-and-suspenders alongside the new.gitignoreentries; .gitignore is silent if bypassed withgit add -f, this hook is loud. Install snippet documented inCONTRIBUTING.md.
gateguardLaw tag reconciled to "Law 1" only acrossREADME.mdTier-1 row andskills/README.md. The skill's frontmatter source-of-truth declares only Law 1; the Tier-1 rows previously over-claimed "Law 1 + Law 3". The three views now agree.skills/README.mdsuperpowersrow rewritten to match the 3.4.0 "Law activator" reframe already in the source skill frontmatter and rootREADME.md. The 3.4.0 reframe (commit2ddea8a) missed this row.README.mdplugin-marketplace row — fixed stale "4 skills" claim → "13 skills" (the actual bundle size verified bycheck-skill-mirror.mjs).docs/testing/proceed-with-the-recommendation.TESTING.mdfootnote added next to the historical RED/GREEN URLs explaining the 3.4.0 rename (proceed-with-claude-recommendation→proceed-with-the-recommendation) so the pre-rename URLs in test artifacts no longer surprise readers.
- 6 unreferenced
nanobanana-output/*.jpgimages (3.1 MB) — committed in3f0dbcbas a one-off save and never referenced anywhere in the repo (verified via grep across non-vendor paths). Recoverable from git history if ever needed. .tmp-stop-e2e/transcript.jsonl— leftover test artifact from a stop-hook E2E run.
.gitignore— was a single line (node_modules/). Now also blocks.tmp-stop-e2e/,nanobanana-output/,*.tmp, anddist/so the deleted artifacts (and similar future cruft) cannot re-enter via a careless stage.
- Marketplace dropped 8 third-party PM plugin entries (
pm-data-analytics,pm-execution,pm-go-to-market,pm-market-research,pm-marketing-growth,pm-product-discovery,pm-product-strategy,pm-toolkit) to refocus the marketplace on the 7 Laws of AI Agent Discipline. After updating, anyone with those plugins installed from this marketplace loses the update source — the plugins keep working until uninstalled, but/plugin marketplace update continuous-improvementwill no longer resolve them. To keep them, install from a separate marketplace or re-add the entries downstream.
/seven-lawsslash command — brand-aligned alias to/continuous-improvement, so the 7 Laws name surfaces directly in the command palette without breaking the existing entrypoint- Skill Law-tag lint (
npm run verify:skill-law-tag) — CI lint that requires every non-core skill description to lead with the Law it enforces, preventing description drift from the 7-Laws frame - README Law Coverage matrix — explicit map from each bundled skill / command / hook / instinct pack to the Law it serves, so contributors can see at a glance which Laws are well-covered and which need work
- Skill descriptions lead with their Law — Laws 1–7 source skills and the orchestrator now open with the Law they enforce, replacing generic blurbs with intent-first framing that matches the lint
superpowersreframed as a Law activator, not a peer skill — clarified in skill description and README so users stop treating it as one option among many- Renamed
proceed-with-claude-recommendation→proceed-with-the-recommendation— drops Claude-specific branding from the skill identifier so the same skill can be installed into non-Claude agents (Codex, Gemini CLI, etc.). Identifier-only rename: file paths, frontmattername:, slash command, install snippets, and cross-references updated. Body language about "Claude-emitted recommendation" is intentionally untouched in this release; that agent-genericization pass is a separate follow-up. Old-name installations need to re-run the install snippet under the new path. - Version bump to 3.4.0
- If you depend on any of the 8 dropped PM plugins, pin them via a separate marketplace before running
/plugin marketplace update continuous-improvement. Existing installs continue to work; only the update path is removed.
proceed-with-claude-recommendationcompanion skill — walks a Claude recommendation list top-to-bottom, routes each item to the right specialist (superpowers:*,schedule,loop,simplify,security-review, etc.), falls back to inline behavior when the specialist is not installed, verifies per item, and stops at items that need user approval/proceed-with-claude-recommendationslash command — entrypoint that runs the companion skill on the most recent list of Claude recommendations- Skill hardening — explicit guardrails against the three most common rationalizations (skipping verification, bundling items, silently deferring approval-needed items)
- Pressure-test baseline log — recorded under
reports/so regressions in skill behavior are detectable
- 7-Laws engine integration —
proceed-with-claude-recommendationnow routes through the same research → plan → verify → reflect flow enforced bySKILL.md, so per-item behavior matches the core 7 Laws rather than running as a parallel track - Plugin bundle —
plugins/continuous-improvement/now ships the new skill and command (generated bynpm run build), so Claude Code marketplace installs and Codex plugin bundles pick them up without extra steps - Installer —
npx continuous-improvement installnow deploys/proceed-with-claude-recommendationalongside the existing core commands - Skills bundler filter hardened — the generator now only treats kebab-case
*.mdfiles as skills, so reference logs like*.TESTING.mdno longer leak into the plugin as fake skills - Version bump to 3.3.0
- Clarified in
README.mdthatciis a separate unified workflow CLI and not a shorthand for thecontinuous-improvementinstaller - Aligned
docs/unified-plugin-guide.mdversion reference with the current package version
- Planning-With-Files workflow — opt-in persistent project-root planning via
task_plan.md,findings.md, andprogress.md /planning-with-filescommand — initialize, inspect, checkpoint, and recover file-based plans in Claude Code- Planning templates — packaged repo-owned templates under
templates/planning-with-files/ - Expert MCP planning tools —
ci_plan_initandci_plan_statusfor initializing and summarizing planning files programmatically
- Expert plugin surface — expert mode now exposes 12 tools instead of 10
- Installer — now installs
/planning-with-filesalongside the existing Claude commands - Docs and metadata — updated README, quickstart, skill docs, marketplace metadata, and translations to document the opt-in planning workflow
- Version bump to 3.2.0
- MCP server (
bin/mcp-server.mjs) — zero-dependency JSON-RPC stdio server exposing instincts as MCP tools and resources. Works with Claude Code, Claude Desktop, Cursor, Zed, Windsurf, VS Code. - Beginner / Expert modes —
--mode beginner(default, 3 tools) vs--mode expert(8 tools with import/export, observation viewer, manual instinct creation, confidence tuning) - MCP-only mode —
--mode mcpfor editors that support MCP but not Claude Code hooks - Plugin manifests —
plugins/beginner.jsonandplugins/expert.jsondescribe available tools per mode - Session hooks (
hooks/session.sh) — SessionStart loads instincts and shows status; SessionEnd reminds to reflect - Import/export tools —
ci_exportandci_importfor sharing instincts as JSON between team members - 34-test suite — added MCP server tests (beginner + expert mode) and plugin config validation. Up from 20 tests.
- Multi-editor MCP support — installer patches both
settings.jsonandclaude_desktop_config.json
- Installer upgraded —
--modeflag replaces single-mode install. Supportsbeginner,expert,mcp - Uninstaller upgraded — cleans up MCP server config, session hooks, and desktop config
- Version bump to 3.0.0 — breaking change: new install modes and MCP server architecture
- Public npm — package name changed from
@naimkatiman/continuous-improvementtocontinuous-improvement. Removed GitHub Packages publishConfig.npx continuous-improvement installnow works for everyone. - Expanded keywords — added
claude-code-skill,agent-skill,gemini-clifor better npm discoverability - Improved description — package description now leads with the value prop, lists supported platforms
- Test suite — 20 tests covering installer, hook, and SKILL.md validation. Zero dependencies (Node.js built-in test runner).
- Before/after examples in README — collapsible terminal output showing the framework in action vs. without it
- Real-world examples —
examples/directory with 3 detailed scenarios (bug fix, feature build, refactor) - Platform badges — Claude Code, Cursor, Codex compatibility badges in README
- Gemini CLI to supported platforms list
- Roadmap — "Roadmap to 1000 Stars" section in README with phased plan
- Auto-leveling — system promotes itself from CAPTURE → ANALYZE → SUGGEST → AUTO-APPLY based on observation count and instinct confidence. No user action needed.
- No background daemon — analysis runs inline at session start. Removed start-observer.sh, observer-loop.sh, PID management.
- Simplified directory —
~/.claude/instincts/replaces~/.claude/mulahazah/with flat structure - jq optional — observe.sh works with pure bash fallback if jq isn't installed
- Leaner installer — no daemon files copied, no config.json, no analyze.sh. Just skill + hook + command.
- Smaller package — removed agents/ and config.json from published files
- Background observer daemon (deferred to v2.2 as opt-in)
~/.claude/mulahazah/directory structure (replaced by~/.claude/instincts/)rules.md(replaced by YAML instinct files with confidence scoring)bin/analyze.sh(analysis now inline via SKILL.md prompt)
- SKILL.md rewritten to be honest — removed claims about features that didn't work (YAML instinct auto-loading, graduated confidence enforcement)
- Law 7 now uses
~/.claude/mulahazah/rules.md— a markdown file Claude can actually read/write reliably - Added
bin/analyze.sh— the actual analysis pipeline that was missing (calls Haiku to extract rules from observations) - Added
commands/continuous-improvement.md— the actual/continuous-improvementcommand file - Installer now copies analyze.sh, command file, and initializes rules.md
- observer-loop.sh rewritten to use analyze.sh instead of broken YAML instinct pipeline
- README rewritten to match what the tool actually does
- Law 7: Learn From Every Session — Mulahazah learning system
- PreToolUse/PostToolUse hooks for session observation
- Background Haiku observer agent for pattern detection
- Project-scoped observation (per-project JSONL files)
/continuous-improvementcommandhooks/observe.sh— lightweight observation hook (<50ms)agents/— observer agent scriptsconfig.json— observer configuration
- Upgraded from 5-phase framework to 7-Law system
- The Loop: Research → Plan → Execute → Verify → Reflect → Learn → Iterate
- Installer sets up Mulahazah hooks and directories for Claude Code
- Law 6 (Iterate) now explicit — one change → verify → next change
- README completely rewritten for cleaner onboarding — hook first, install in 30 seconds, first-task prompt
- Added real example of a successful agent run (rate limiting walkthrough)
- Added QUICKSTART.md for step-by-step first-use guide
- Added CHANGELOG.md for version tracking
- Removed internal references from SKILL.md (now works for any user, any project)
- Red flags section now in README for discoverability before install
- Fake Claude Code marketplace install command removed
- Internal variable references (Naim, PROJECT_REGISTRY, STATE_TEMPLATE) made universal
- Initial release
- 5-phase framework: Research → Plan → Execute → Verify → Reflect
- Iron Law with 3 hard constraints
- Phase gates (explicit conditions before proceeding)
- Red Flags list (thought patterns that indicate a skip)
- Common Rationalizations table
- Subagent delegation rules with 4 status handlers
- Pre-completion self-review checklist
- marketplace.json for plugin discoverability