continuous-improvement 2.2.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: dashboard
3
+ description: Visual dashboard showing instinct health, observation stats, and learning progress
4
+ ---
5
+
6
+ # Instinct Dashboard
7
+
8
+ Generate a visual dashboard for this project's continuous-improvement status.
9
+
10
+ ## Instructions
11
+
12
+ 1. **Find project hash:** Run `git rev-parse --show-toplevel 2>/dev/null`, then SHA-256 first 12 chars
13
+ 2. **Read observations:** Count lines in `~/.claude/instincts/<hash>/observations.jsonl`
14
+ 3. **Read instincts:** Load all `*.yaml` files from project dir + `global/`
15
+ 4. **Read instinct packs:** Check if any packs from `instinct-packs/` have been loaded
16
+
17
+ ## Display Format
18
+
19
+ ```
20
+ ╔══════════════════════════════════════════════════════════════╗
21
+ ║ continuous-improvement Dashboard ║
22
+ ╠══════════════════════════════════════════════════════════════╣
23
+ ║ ║
24
+ ║ Project: <name> Level: <CAPTURE|ANALYZE|...> ║
25
+ ║ Sessions: ~<obs/10> Mode: <beginner|expert> ║
26
+ ║ ║
27
+ ║ ┌─ Observations ────────────────────────────────────────┐ ║
28
+ ║ │ Total: <n> Unprocessed: <n> Last: <date> │ ║
29
+ ║ └───────────────────────────────────────────────────────┘ ║
30
+ ║ ║
31
+ ║ ┌─ Instincts ───────────────────────────────────────────┐ ║
32
+ ║ │ Total: <n> │ ║
33
+ ║ │ ████████░░ Auto-apply (0.7+): <n> │ ║
34
+ ║ │ █████░░░░░ Suggest (0.5-0.69): <n> │ ║
35
+ ║ │ ██░░░░░░░░ Silent (< 0.5): <n> │ ║
36
+ ║ │ Global: <n> Project: <n> │ ║
37
+ ║ └───────────────────────────────────────────────────────┘ ║
38
+ ║ ║
39
+ ║ ┌─ Top Instincts ───────────────────────────────────────┐ ║
40
+ ║ │ <list top 5 instincts by confidence with bars> │ ║
41
+ ║ └───────────────────────────────────────────────────────┘ ║
42
+ ║ ║
43
+ ║ ┌─ Health ──────────────────────────────────────────────┐ ║
44
+ ║ │ Stale (30+ days): <n> Decaying: <n> │ ║
45
+ ║ │ Recently reinforced: <n> │ ║
46
+ ║ └───────────────────────────────────────────────────────┘ ║
47
+ ║ ║
48
+ ╚══════════════════════════════════════════════════════════════╝
49
+ ```
50
+
51
+ ## After Display
52
+
53
+ - If stale instincts > 0: suggest reviewing them
54
+ - If unprocessed observations > 20: suggest running analysis
55
+ - If no instincts exist: explain the auto-leveling timeline
56
+ - Show available instinct packs that haven't been loaded yet
@@ -0,0 +1,37 @@
1
+ ---
2
+ name: discipline
3
+ description: Quick reference card for the 7 Laws of AI Agent Discipline
4
+ ---
5
+
6
+ # The 7 Laws — Quick Reference
7
+
8
+ Print this card and check yourself against each law.
9
+
10
+ ## The Laws
11
+
12
+ | # | Law | Check | Red Flag |
13
+ |---|-----|-------|----------|
14
+ | 1 | **Research Before Executing** | Did I search for existing solutions? | "I'll just quickly..." |
15
+ | 2 | **Plan Is Sacred** | Did I state WILL / WILL NOT / VERIFY? | "Let me also add..." |
16
+ | 3 | **One Thing at a Time** | Am I finishing before starting? | "While I'm here..." |
17
+ | 4 | **Verify Before Reporting** | Did I check the ACTUAL output? | "This should work..." |
18
+ | 5 | **Reflect After Sessions** | Did I note what worked/failed? | "I'll remember..." |
19
+ | 6 | **Iterate One Change** | Am I changing one thing at a time? | "And also..." |
20
+ | 7 | **Learn From Every Session** | Did I capture this as an instinct? | "Next time I'll..." |
21
+
22
+ ## The Loop
23
+
24
+ ```
25
+ Research → Plan → Execute (one thing) → Verify → Reflect → Learn → Iterate
26
+ ```
27
+
28
+ ## Self-Check
29
+
30
+ Before saying "Done", verify ALL:
31
+ - [ ] Code runs without errors
32
+ - [ ] Output matches expected result
33
+ - [ ] I checked the **actual** result (not assumed)
34
+ - [ ] Build passes
35
+ - [ ] I can explain the change in one sentence
36
+
37
+ If you're skipping a step, that's the step you need most.
@@ -0,0 +1,106 @@
1
+ #!/usr/bin/env bash
2
+ # session.sh — SessionStart/SessionEnd hook for continuous-improvement
3
+ # SessionStart: loads instincts and prints status
4
+ # SessionEnd: prompts reflection
5
+ # Always exits 0 — never blocks the session
6
+ trap 'exit 0' EXIT ERR INT TERM
7
+
8
+ INSTINCTS_DIR="${HOME}/.claude/instincts"
9
+
10
+ # Read stdin
11
+ INPUT="$(cat)"
12
+ [[ -z "$INPUT" ]] && exit 0
13
+
14
+ # ---------------------------------------------------------------------------
15
+ # Detect event type from hook context
16
+ # ---------------------------------------------------------------------------
17
+ # SessionStart hooks receive no tool_name, SessionEnd hooks may vary.
18
+ # We detect based on the hook_type field or the calling context.
19
+ EVENT_TYPE=""
20
+ if command -v jq &>/dev/null; then
21
+ EVENT_TYPE="$(printf '%s' "$INPUT" | jq -r '.hook_type // .event_type // "unknown"' 2>/dev/null)"
22
+ else
23
+ if printf '%s' "$INPUT" | grep -q '"SessionStart"'; then
24
+ EVENT_TYPE="SessionStart"
25
+ elif printf '%s' "$INPUT" | grep -q '"SessionEnd"'; then
26
+ EVENT_TYPE="SessionEnd"
27
+ fi
28
+ fi
29
+
30
+ # ---------------------------------------------------------------------------
31
+ # Project detection (same as observe.sh)
32
+ # ---------------------------------------------------------------------------
33
+ PROJECT_ROOT=""
34
+ if [[ -n "${CLAUDE_PROJECT_DIR:-}" && -d "${CLAUDE_PROJECT_DIR}" ]]; then
35
+ PROJECT_ROOT="${CLAUDE_PROJECT_DIR}"
36
+ fi
37
+ if [[ -z "$PROJECT_ROOT" ]]; then
38
+ PROJECT_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || true)"
39
+ fi
40
+ if [[ -z "$PROJECT_ROOT" ]]; then
41
+ PROJECT_ROOT="global"
42
+ fi
43
+
44
+ PROJECT_HASH="$(printf '%s' "$PROJECT_ROOT" | sha256sum | cut -c1-12)"
45
+ PROJECT_DIR="${INSTINCTS_DIR}/${PROJECT_HASH}"
46
+
47
+ # ---------------------------------------------------------------------------
48
+ # SessionStart: count observations and instincts, print brief status
49
+ # ---------------------------------------------------------------------------
50
+ if [[ "$EVENT_TYPE" == "SessionStart" || "$EVENT_TYPE" == "unknown" ]]; then
51
+ OBS_COUNT=0
52
+ INSTINCT_COUNT=0
53
+
54
+ OBS_FILE="${PROJECT_DIR}/observations.jsonl"
55
+ if [[ -f "$OBS_FILE" ]]; then
56
+ OBS_COUNT="$(wc -l < "$OBS_FILE" 2>/dev/null || echo 0)"
57
+ fi
58
+
59
+ # Count yaml files in project + global
60
+ for dir in "$PROJECT_DIR" "${INSTINCTS_DIR}/global"; do
61
+ if [[ -d "$dir" ]]; then
62
+ count="$(find "$dir" -maxdepth 1 -name '*.yaml' 2>/dev/null | wc -l)"
63
+ INSTINCT_COUNT=$((INSTINCT_COUNT + count))
64
+ fi
65
+ done
66
+
67
+ # Determine level
68
+ LEVEL="CAPTURE"
69
+ if (( OBS_COUNT >= 20 )) || (( INSTINCT_COUNT > 0 )); then
70
+ LEVEL="ANALYZE"
71
+ fi
72
+
73
+ # Check for high-confidence instincts
74
+ if (( INSTINCT_COUNT > 0 )); then
75
+ for dir in "$PROJECT_DIR" "${INSTINCTS_DIR}/global"; do
76
+ if [[ -d "$dir" ]]; then
77
+ for f in "$dir"/*.yaml; do
78
+ [[ -f "$f" ]] || continue
79
+ conf="$(grep '^confidence:' "$f" 2>/dev/null | head -1 | sed 's/confidence: *//')"
80
+ if [[ -n "$conf" ]]; then
81
+ # Compare as integer (multiply by 100)
82
+ int_conf="$(printf '%.0f' "$(echo "$conf * 100" | bc 2>/dev/null || echo 0)")"
83
+ if (( int_conf >= 70 )); then
84
+ LEVEL="AUTO-APPLY"
85
+ break 2
86
+ elif (( int_conf >= 50 )); then
87
+ LEVEL="SUGGEST"
88
+ fi
89
+ fi
90
+ done
91
+ fi
92
+ done
93
+ fi
94
+
95
+ # Write status to stderr (visible in hook output, not blocking)
96
+ echo "[continuous-improvement] Level: ${LEVEL} | Observations: ${OBS_COUNT} | Instincts: ${INSTINCT_COUNT}" >&2
97
+ fi
98
+
99
+ # ---------------------------------------------------------------------------
100
+ # SessionEnd: remind to reflect
101
+ # ---------------------------------------------------------------------------
102
+ if [[ "$EVENT_TYPE" == "SessionEnd" ]]; then
103
+ echo "[continuous-improvement] Session ending. Run /continuous-improvement to reflect and capture learnings." >&2
104
+ fi
105
+
106
+ exit 0
@@ -0,0 +1,58 @@
1
+ [
2
+ {
3
+ "id": "go-error-handling",
4
+ "trigger": "when calling functions that return errors",
5
+ "body": "Always check returned errors immediately. Never use _ to discard errors unless you've explicitly decided it's safe and documented why.",
6
+ "confidence": 0.7,
7
+ "domain": "patterns"
8
+ },
9
+ {
10
+ "id": "go-defer-cleanup",
11
+ "trigger": "when opening files, connections, or acquiring locks",
12
+ "body": "Use defer immediately after acquiring a resource for cleanup. Place defer right after the error check for the acquisition.",
13
+ "confidence": 0.7,
14
+ "domain": "patterns"
15
+ },
16
+ {
17
+ "id": "go-interface-consumer",
18
+ "trigger": "when defining Go interfaces",
19
+ "body": "Define interfaces at the consumer side, not the producer side. Keep interfaces small (1-3 methods). Accept interfaces, return structs.",
20
+ "confidence": 0.65,
21
+ "domain": "patterns"
22
+ },
23
+ {
24
+ "id": "go-table-driven-tests",
25
+ "trigger": "when writing Go tests",
26
+ "body": "Use table-driven tests with subtests (t.Run) for functions with multiple input/output cases. Name test cases descriptively.",
27
+ "confidence": 0.7,
28
+ "domain": "testing"
29
+ },
30
+ {
31
+ "id": "go-context-propagation",
32
+ "trigger": "when writing HTTP handlers or long-running operations",
33
+ "body": "Accept context.Context as the first parameter. Propagate it to all downstream calls. Use it for cancellation and timeouts.",
34
+ "confidence": 0.65,
35
+ "domain": "patterns"
36
+ },
37
+ {
38
+ "id": "go-goroutine-lifecycle",
39
+ "trigger": "when spawning goroutines",
40
+ "body": "Always ensure goroutines have a way to exit (context cancellation, done channel, or WaitGroup). Never fire-and-forget goroutines without cleanup.",
41
+ "confidence": 0.7,
42
+ "domain": "patterns"
43
+ },
44
+ {
45
+ "id": "go-struct-zero-values",
46
+ "trigger": "when designing Go structs",
47
+ "body": "Design structs so their zero value is useful. Use pointer fields only when nil is a meaningful distinct state from zero value.",
48
+ "confidence": 0.6,
49
+ "domain": "patterns"
50
+ },
51
+ {
52
+ "id": "go-mod-tidy",
53
+ "trigger": "when adding or removing dependencies",
54
+ "body": "Run 'go mod tidy' after adding or removing imports to keep go.mod and go.sum clean.",
55
+ "confidence": 0.65,
56
+ "domain": "workflow"
57
+ }
58
+ ]
@@ -0,0 +1,58 @@
1
+ [
2
+ {
3
+ "id": "python-virtual-env",
4
+ "trigger": "when starting work on a Python project",
5
+ "body": "Check for virtual environment (venv, .venv, conda) before installing packages. Never install to system Python.",
6
+ "confidence": 0.7,
7
+ "domain": "workflow"
8
+ },
9
+ {
10
+ "id": "python-type-hints",
11
+ "trigger": "when writing Python functions",
12
+ "body": "Add type hints to function parameters and return values. Use Optional[], list[], dict[] (Python 3.10+) or typing module for older versions.",
13
+ "confidence": 0.6,
14
+ "domain": "code-style"
15
+ },
16
+ {
17
+ "id": "python-pathlib",
18
+ "trigger": "when working with file paths in Python",
19
+ "body": "Use pathlib.Path instead of os.path for file operations. It's more readable and cross-platform.",
20
+ "confidence": 0.65,
21
+ "domain": "patterns"
22
+ },
23
+ {
24
+ "id": "python-context-managers",
25
+ "trigger": "when opening files or database connections",
26
+ "body": "Always use context managers (with statement) for files, database connections, and locks. Never rely on manual .close() calls.",
27
+ "confidence": 0.7,
28
+ "domain": "patterns"
29
+ },
30
+ {
31
+ "id": "python-list-comprehension",
32
+ "trigger": "when writing simple for loops that build lists",
33
+ "body": "Prefer list comprehensions for simple transformations. Use regular for loops when the logic is complex or has side effects.",
34
+ "confidence": 0.6,
35
+ "domain": "code-style"
36
+ },
37
+ {
38
+ "id": "python-requirements-check",
39
+ "trigger": "when adding a new import",
40
+ "body": "Check if the package is already in requirements.txt, pyproject.toml, or Pipfile before adding. Search for existing usage in the codebase.",
41
+ "confidence": 0.65,
42
+ "domain": "workflow"
43
+ },
44
+ {
45
+ "id": "python-pytest-fixtures",
46
+ "trigger": "when writing Python tests",
47
+ "body": "Use pytest fixtures for test setup/teardown instead of unittest setUp/tearDown. Use conftest.py for shared fixtures.",
48
+ "confidence": 0.6,
49
+ "domain": "testing"
50
+ },
51
+ {
52
+ "id": "python-dataclass",
53
+ "trigger": "when creating classes that primarily hold data",
54
+ "body": "Use @dataclass or Pydantic BaseModel instead of plain classes for data containers. They provide __init__, __repr__, and comparison for free.",
55
+ "confidence": 0.65,
56
+ "domain": "patterns"
57
+ }
58
+ ]
@@ -0,0 +1,58 @@
1
+ [
2
+ {
3
+ "id": "react-check-existing-components",
4
+ "trigger": "when creating a new React component",
5
+ "body": "Search the codebase for existing components that solve the same problem before creating new ones. Check shared/, components/, and ui/ directories.",
6
+ "confidence": 0.65,
7
+ "domain": "workflow"
8
+ },
9
+ {
10
+ "id": "react-prefer-server-components",
11
+ "trigger": "when creating components in Next.js App Router",
12
+ "body": "Default to Server Components. Only add 'use client' when the component needs useState, useEffect, event handlers, or browser APIs.",
13
+ "confidence": 0.7,
14
+ "domain": "patterns"
15
+ },
16
+ {
17
+ "id": "react-key-prop-lists",
18
+ "trigger": "when rendering lists with .map()",
19
+ "body": "Always use a stable, unique key prop. Never use array index as key unless the list is static and never reordered.",
20
+ "confidence": 0.7,
21
+ "domain": "patterns"
22
+ },
23
+ {
24
+ "id": "react-effect-cleanup",
25
+ "trigger": "when writing useEffect with subscriptions or timers",
26
+ "body": "Always return a cleanup function from useEffect when setting up subscriptions, event listeners, or timers to prevent memory leaks.",
27
+ "confidence": 0.7,
28
+ "domain": "patterns"
29
+ },
30
+ {
31
+ "id": "react-memo-expensive",
32
+ "trigger": "when a component re-renders with expensive calculations",
33
+ "body": "Use useMemo for expensive computations and React.memo for components that receive the same props frequently. Don't memo everything — only what's measurably slow.",
34
+ "confidence": 0.6,
35
+ "domain": "patterns"
36
+ },
37
+ {
38
+ "id": "react-form-validation",
39
+ "trigger": "when building forms",
40
+ "body": "Check if react-hook-form or zod is already in the project before building custom form validation. Prefer library solutions over hand-rolled validation.",
41
+ "confidence": 0.65,
42
+ "domain": "tooling"
43
+ },
44
+ {
45
+ "id": "react-error-boundary",
46
+ "trigger": "when adding a new page or route",
47
+ "body": "Ensure error boundaries exist around new pages/routes. In Next.js App Router, add error.tsx. In other React apps, wrap with ErrorBoundary component.",
48
+ "confidence": 0.6,
49
+ "domain": "patterns"
50
+ },
51
+ {
52
+ "id": "react-test-user-behavior",
53
+ "trigger": "when writing React component tests",
54
+ "body": "Test user behavior, not implementation details. Use @testing-library/react. Query by role, label, or text — not by class name or test ID.",
55
+ "confidence": 0.65,
56
+ "domain": "testing"
57
+ }
58
+ ]
package/llms.txt ADDED
@@ -0,0 +1,43 @@
1
+ # continuous-improvement
2
+
3
+ > The 7 Laws of AI Agent Discipline — stop your agent from skipping steps, guessing, and declaring "done" without verifying.
4
+
5
+ ## What This Is
6
+
7
+ A discipline framework for AI coding agents. It teaches agents structured thinking through 7 laws and builds behavioral instincts over time via the Mulahazah learning system.
8
+
9
+ ## Install
10
+
11
+ ```bash
12
+ npx continuous-improvement install
13
+ ```
14
+
15
+ ## The 7 Laws
16
+
17
+ 1. Research Before Executing — search before writing
18
+ 2. Plan Is Sacred — state WILL/WILL NOT/VERIFY before acting
19
+ 3. One Thing at a Time — complete and verify one task before the next
20
+ 4. Verify Before Reporting — "done" requires actual proof
21
+ 5. Reflect After Sessions — capture what worked and what failed
22
+ 6. Iterate One Change — one change, verify, then next
23
+ 7. Learn From Every Session — patterns become instincts
24
+
25
+ ## Key Concepts
26
+
27
+ - **Mulahazah** — auto-leveling learning system that captures tool usage patterns
28
+ - **Instincts** — YAML-based behavioral rules with confidence scoring (0.0-0.9)
29
+ - **Auto-leveling** — CAPTURE → ANALYZE → SUGGEST → AUTO-APPLY (no config needed)
30
+ - **Project-scoped** — instincts are per-project, promoted to global when seen in 2+ projects
31
+
32
+ ## Works With
33
+
34
+ - Claude Code (full support: skill + hooks + MCP server)
35
+ - Cursor, Zed, Windsurf, VS Code (MCP server)
36
+ - Codex, Gemini CLI, OpenClaw (skill only)
37
+ - Any LLM (paste SKILL.md into system prompt)
38
+
39
+ ## Links
40
+
41
+ - GitHub: https://github.com/naimkatiman/continuous-improvement
42
+ - npm: https://www.npmjs.com/package/continuous-improvement
43
+ - Skill file: https://raw.githubusercontent.com/naimkatiman/continuous-improvement/main/SKILL.md
package/package.json CHANGED
@@ -1,40 +1,63 @@
1
1
  {
2
2
  "name": "continuous-improvement",
3
- "version": "2.2.0",
4
- "description": "7-law discipline framework with auto-leveling instinct learning for AI agents research, plan, execute, verify, reflect, learn, iterate",
3
+ "version": "3.1.0",
4
+ "description": "The 7 Laws of AI Agent Discipline — stop your agent from skipping steps, guessing, and declaring 'done' without verifying. Auto-leveling instinct learning with MCP server, GitHub Action transcript linter, and starter instinct packs for Claude Code, Cursor, Codex, Gemini CLI.",
5
5
  "keywords": [
6
- "ai-agent",
7
6
  "claude-code",
7
+ "claude-code-skill",
8
+ "ai-agent",
9
+ "agent-skill",
8
10
  "codex",
9
- "openclaw",
10
11
  "cursor",
11
- "skill",
12
- "continuous-improvement",
12
+ "gemini-cli",
13
+ "ai-discipline",
13
14
  "workflow",
14
15
  "productivity",
15
16
  "mulahazah",
16
17
  "instinct",
17
18
  "learning",
18
- "hooks"
19
+ "hooks",
20
+ "continuous-improvement",
21
+ "mcp",
22
+ "mcp-server",
23
+ "plugin",
24
+ "github-action",
25
+ "transcript-linter",
26
+ "agent-discipline",
27
+ "developer-tools",
28
+ "anthropic",
29
+ "llm"
19
30
  ],
20
31
  "author": "naimkatiman",
21
32
  "license": "MIT",
22
33
  "repository": {
23
34
  "type": "git",
24
- "url": "https://github.com/naimkatiman/continuous-improvement"
35
+ "url": "git+https://github.com/naimkatiman/continuous-improvement.git"
25
36
  },
26
37
  "homepage": "https://github.com/naimkatiman/continuous-improvement#readme",
38
+ "bugs": {
39
+ "url": "https://github.com/naimkatiman/continuous-improvement/issues"
40
+ },
27
41
  "bin": {
28
- "continuous-improvement": "./bin/install.mjs"
42
+ "continuous-improvement": "bin/install.mjs",
43
+ "ci-lint-transcript": "bin/lint-transcript.mjs"
44
+ },
45
+ "scripts": {
46
+ "test": "node --test test/*.test.mjs",
47
+ "lint": "node bin/lint-transcript.mjs --help"
29
48
  },
30
49
  "files": [
31
50
  "SKILL.md",
32
51
  "QUICKSTART.md",
33
52
  "CHANGELOG.md",
34
53
  "README.md",
54
+ "llms.txt",
55
+ "action.yml",
35
56
  "bin/",
36
57
  "hooks/",
37
- "commands/"
58
+ "commands/",
59
+ "plugins/",
60
+ "instinct-packs/"
38
61
  ],
39
62
  "type": "module"
40
63
  }
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "continuous-improvement",
3
+ "version": "3.1.0",
4
+ "mode": "beginner",
5
+ "description": "3 simple tools: check status, view instincts, reflect on sessions. No config needed.",
6
+ "tools": [
7
+ {
8
+ "name": "ci_status",
9
+ "what": "See what the system has learned about your project"
10
+ },
11
+ {
12
+ "name": "ci_instincts",
13
+ "what": "List all learned behaviors with confidence levels"
14
+ },
15
+ {
16
+ "name": "ci_reflect",
17
+ "what": "Reflect on what you did this session"
18
+ }
19
+ ],
20
+ "setup": {
21
+ "claude_desktop": {
22
+ "mcpServers": {
23
+ "continuous-improvement": {
24
+ "command": "node",
25
+ "args": ["<install-path>/bin/mcp-server.mjs", "--mode", "beginner"]
26
+ }
27
+ }
28
+ },
29
+ "claude_code": {
30
+ "mcpServers": {
31
+ "continuous-improvement": {
32
+ "command": "node",
33
+ "args": ["<install-path>/bin/mcp-server.mjs", "--mode", "beginner"]
34
+ }
35
+ }
36
+ }
37
+ },
38
+ "hooks": {
39
+ "included": ["PreToolUse", "PostToolUse"],
40
+ "description": "Silently captures every tool call as observations. <50ms, never blocks."
41
+ }
42
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "name": "continuous-improvement",
3
+ "version": "3.1.0",
4
+ "mode": "expert",
5
+ "description": "Full plugin: 10 tools including instinct management, import/export, observation viewer, dashboard, and instinct packs.",
6
+ "tools": [
7
+ {
8
+ "name": "ci_status",
9
+ "what": "See what the system has learned about your project"
10
+ },
11
+ {
12
+ "name": "ci_instincts",
13
+ "what": "List all learned behaviors with confidence levels"
14
+ },
15
+ {
16
+ "name": "ci_reflect",
17
+ "what": "Reflect on what you did this session"
18
+ },
19
+ {
20
+ "name": "ci_reinforce",
21
+ "what": "Accept or reject instinct suggestions to tune confidence"
22
+ },
23
+ {
24
+ "name": "ci_create_instinct",
25
+ "what": "Manually create instincts with custom triggers and confidence"
26
+ },
27
+ {
28
+ "name": "ci_observations",
29
+ "what": "View raw tool call observations captured by hooks"
30
+ },
31
+ {
32
+ "name": "ci_export",
33
+ "what": "Export instincts as JSON for sharing or backup"
34
+ },
35
+ {
36
+ "name": "ci_import",
37
+ "what": "Import instincts from JSON (skip duplicates)"
38
+ },
39
+ {
40
+ "name": "ci_dashboard",
41
+ "what": "Visual dashboard showing instinct health, confidence distribution, and learning progress"
42
+ },
43
+ {
44
+ "name": "ci_load_pack",
45
+ "what": "Load starter instinct packs (react, python, go) into the current project"
46
+ }
47
+ ],
48
+ "setup": {
49
+ "claude_desktop": {
50
+ "mcpServers": {
51
+ "continuous-improvement": {
52
+ "command": "node",
53
+ "args": ["<install-path>/bin/mcp-server.mjs", "--mode", "expert"]
54
+ }
55
+ }
56
+ },
57
+ "claude_code": {
58
+ "mcpServers": {
59
+ "continuous-improvement": {
60
+ "command": "node",
61
+ "args": ["<install-path>/bin/mcp-server.mjs", "--mode", "expert"]
62
+ }
63
+ }
64
+ }
65
+ },
66
+ "hooks": {
67
+ "included": ["PreToolUse", "PostToolUse", "SessionStart", "SessionEnd"],
68
+ "description": "Full hook suite: observation capture + session-level instinct loading and auto-reflection."
69
+ }
70
+ }