[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DB86K9D67FM4SYGKKFFVM1":3,"skill-same:01M6DB86K9D67FM4SYGKKFFVM1":96},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":29,"linkOnly":30,"markdownContent":31,"markdownBody":32,"frontMatter":33,"refName":36,"commitSha":37,"skillDirectory":38,"forksCount":14,"repositoryHtmlUrl":39,"repositoryHomepageUrl":6,"ownerHtmlUrl":40,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":41,"install":42,"resources":55},"01M6DB86K9D67FM4SYGKKFFVM1","continuous-learning-v2",null,"Instinct-based learning system that observes sessions via hooks, creates atomic instincts with confidence scoring, and evolves them into skills\u002Fcommands\u002Fagents. v2.1 adds project-scoped instincts to prevent cross-project contamination.","Prekzursil\u002Fagent-skills-toolchain","Prekzursil","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F54636077?v=4","01M6DACZ1PCQHD99SCR1YXG28B","Andrei Mihai Visalon","01M6DACZ670WZF535V3WYYSS4Z",0,"MIT","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fcontinuous-learning-v2\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28],"learning","continuous learning","continuous learning v2","sessions","system","hooks","confidence scoring","scoring","project","commands","2026-11-10 10:12:30",false,"---\nname: continuous-learning-v2\ndescription: Instinct-based learning system that observes sessions via hooks, creates atomic instincts with confidence scoring, and evolves them into skills\u002Fcommands\u002Fagents. v2.1 adds project-scoped instincts to prevent cross-project contamination.\norigin: ECC\nversion: 2.1.0\n---\n\n# Continuous Learning v2.1 - Instinct\n-Based Architecture\n\nAn advanced learning system that turns your Claude Code sessions into reusable knowledge through atomic \"instincts\" - small learned behaviors with confidence scoring.\n\n**v2.1** adds **project-scoped instincts** — React patterns stay in your React project, Python conventions stay in your Python project, and universal patterns (like \"always validate input\") are shared globally.\n\n## When to Activate\n\n- Setting up automatic learning from Claude Code sessions\n- Configuring instinct-based behavior extraction via hooks\n- Tuning confidence thresholds for learned behaviors\n- Reviewing, exporting, or importing instinct libraries\n- Evolving instincts into full skills, commands, or agents\n- Managing project-scoped vs global instincts\n- Promoting instincts from project to global scope\n\n## What's New in v2.1\n\n| Feature | v2.0 | v2.1 |\n|---------|------|------|\n| Storage | Global (~\u002F.claude\u002Fhomunculus\u002F) | Project-scoped (projects\u002F\u003Chash>\u002F) |\n| Scope | All instincts apply everywhere | Project-scoped + global |\n| Detection | None | git remote URL \u002F repo path |\n| Promotion | N\u002FA | Project → global when seen in 2+ projects |\n| Commands | 4 (status\u002Fevolve\u002Fexport\u002Fimport) | 6 (+promote\u002Fprojects) |\n| Cross-project | Contamination risk | Isolated by default |\n\n## What's New in v2 (vs v1)\n\n| Feature | v1 | v2 |\n|---------|----|----|\n| Observation | Stop hook (session end) | PreToolUse\u002FPostToolUse (100% reliable) |\n| Analysis | Main context | Background agent (Haiku) |\n| Granularity | Full skills | Atomic \"instincts\" |\n| Confidence | None | 0.3-0.9 weighted |\n| Evolution | Direct to skill | Instincts -> cluster -> skill\u002Fcommand\u002Fagent |\n| Sharing | None | Export\u002Fimport instincts |\n\n## The Instinct Model\n\nAn instinct is a small learned behavior:\n\n```yaml\n---\nid: prefer-functional-style\ntrigger: \"when writing new functions\"\nconfidence: 0.7\ndomain: \"code-style\"\nsource: \"session-observation\"\nscope: project\nproject_id: \"a1b2c3d4e5f6\"\nproject_name: \"my-react-app\"\n---\n\n# Prefer Functional Style\n\n## Action\nUse functional patterns over classes when appropriate.\n\n## Evidence\n- Observed 5 instances of functional pattern preference\n- User corrected class-based approach to functional on 2025-01-15\n```\n\n**Properties:**\n- **Atomic** -- one trigger, one action\n- **Confidence-weighted** -- 0.3 = tentative, 0.9 = near certain\n- **Domain-tagged** -- code-style, testing, git, debugging, workflow, etc.\n- **Evidence-backed** -- tracks what observations created it\n- **Scope-aware** -- `project` (default) or `global`\n\n## How It Works\n\n```\nSession Activity (in a git repo)\n      |\n      | Hooks capture prompts + tool use (100% reliable)\n      | + detect project context (git remote \u002F repo path)\n      v\n+---------------------------------------------+\n|  projects\u002F\u003Cproject-hash>\u002Fobservations.jsonl  |\n|   (prompts, tool calls, outcomes, project)   |\n+---------------------------------------------+\n      |\n      | Observer agent reads (background, Haiku)\n      v\n+---------------------------------------------+\n|          PATTERN DETECTION                   |\n|   * User corrections -> instinct             |\n|   * Error resolutions -> instinct            |\n|   * Repeated workflows -> instinct           |\n|   * Scope decision: project or global?       |\n+---------------------------------------------+\n      |\n      | Creates\u002Fupdates\n      v\n+---------------------------------------------+\n|  projects\u002F\u003Cproject-hash>\u002Finstincts\u002Fpersonal\u002F |\n|   * prefer-functional.yaml (0.7) [project]   |\n|   * use-react-hooks.yaml (0.9) [project]     |\n+---------------------------------------------+\n|  instincts\u002Fpersonal\u002F  (GLOBAL)               |\n|   * always-validate-input.yaml (0.85) [global]|\n|   * grep-before-edit.yaml (0.6) [global]     |\n+---------------------------------------------+\n      |\n      | \u002Fevolve clusters + \u002Fpromote\n      v\n+---------------------------------------------+\n|  projects\u002F\u003Chash>\u002Fevolved\u002F (project-scoped)   |\n|  evolved\u002F (global)                           |\n|   * commands\u002Fnew-feature.md                  |\n|   * skills\u002Ftesting-workflow.md               |\n|   * agents\u002Frefactor-specialist.md            |\n+---------------------------------------------+\n```\n\n## Project Detection\n\nThe system automatically detects your current project:\n\n1. **`CLAUDE_PROJECT_DIR` env var** (highest priority)\n2. **`git remote get-url origin`** -- hashed to create a portable project ID (same repo on different machines gets the same ID)\n3. **`git rev-parse --show-toplevel`** -- fallback using repo path (machine-specific)\n4. **Global fallback** -- if no project is detected, instincts go to global scope\n\nEach project gets a 12-character hash ID (e.g., `a1b2c3d4e5f6`). A registry file at `~\u002F.claude\u002Fhomunculus\u002Fprojects.json` maps IDs to human-readable names.\n\n## Quick Start\n\n### 1. Enable Observation Hooks\n\nAdd to your `~\u002F.claude\u002Fsettings.json`.\n\n**If installed as a plugin** (recommended):\n\n```json\n{\n  \"hooks\": {\n    \"PreToolUse\": [{\n      \"matcher\": \"*\",\n      \"hooks\": [{\n        \"type\": \"command\",\n        \"command\": \"${CLAUDE_PLUGIN_ROOT}\u002Fskills\u002Fcontinuous-learning-v2\u002Fhooks\u002Fobserve.sh\"\n      }]\n    }],\n    \"PostToolUse\": [{\n      \"matcher\": \"*\",\n      \"hooks\": [{\n        \"type\": \"command\",\n        \"command\": \"${CLAUDE_PLUGIN_ROOT}\u002Fskills\u002Fcontinuous-learning-v2\u002Fhooks\u002Fobserve.sh\"\n      }]\n    }]\n  }\n}\n```\n\n**If installed manually** to `~\u002F.claude\u002Fskills`:\n\n```json\n{\n  \"hooks\": {\n    \"PreToolUse\": [{\n      \"matcher\": \"*\",\n      \"hooks\": [{\n        \"type\": \"command\",\n        \"command\": \"~\u002F.claude\u002Fskills\u002Fcontinuous-learning-v2\u002Fhooks\u002Fobserve.sh\"\n      }]\n    }],\n    \"PostToolUse\": [{\n      \"matcher\": \"*\",\n      \"hooks\": [{\n        \"type\": \"command\",\n        \"command\": \"~\u002F.claude\u002Fskills\u002Fcontinuous-learning-v2\u002Fhooks\u002Fobserve.sh\"\n      }]\n    }]\n  }\n}\n```\n\n### 2. Initialize Directory Structure\n\nThe system creates directories automatically on first use, but you can also create them manually:\n\n```bash\n# Global directories\nmkdir -p ~\u002F.claude\u002Fhomunculus\u002F{instincts\u002F{personal,inherited},evolved\u002F{agents,skills,commands},projects}\n\n# Project directories are auto-created when the hook first runs in a git repo\n```\n\n### 3. Use the Instinct Commands\n\n```bash\n\u002Finstinct-status     # Show learned instincts (project + global)\n\u002Fevolve              # Cluster related instincts into skills\u002Fcommands\n\u002Finstinct-export     # Export instincts to file\n\u002Finstinct-import     # Import instincts from others\n\u002Fpromote             # Promote project instincts to global scope\n\u002Fprojects            # List all known projects and their instinct counts\n```\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `\u002Finstinct-status` | Show all instincts (project-scoped + global) with confidence |\n| `\u002Fevolve` | Cluster related instincts into skills\u002Fcommands, suggest promotions |\n| `\u002Finstinct-export` | Export instincts (filterable by scope\u002Fdomain) |\n| `\u002Finstinct-import \u003Cfile>` | Import instincts with scope control |\n| `\u002Fpromote [id]` | Promote project instincts to global scope |\n| `\u002Fprojects` | List all known projects and their instinct counts |\n\n## Configuration\n\nEdit `config.json` to control the background observer:\n\n```json\n{\n  \"version\": \"2.1\",\n  \"observer\": {\n    \"enabled\": false,\n    \"run_interval_minutes\": 5,\n    \"min_observations_to_analyze\": 20\n  }\n}\n```\n\n| Key | Default | Description |\n|-----|---------|-------------|\n| `observer.enabled` | `false` | Enable the background observer agent |\n| `observer.run_interval_minutes` | `5` | How often the observer analyzes observations |\n| `observer.min_observations_to_analyze` | `20` | Minimum observations before analysis runs |\n\nOther behavior (observation capture, instinct thresholds, project scoping, promotion criteria) is configured via code defaults in `instinct-cli.py` and `observe.sh`.\n\n## File Structure\n\n```\n~\u002F.claude\u002Fhomunculus\u002F\n+-- identity.json           # Your profile, technical level\n+-- projects.json           # Registry: project hash -> name\u002Fpath\u002Fremote\n+-- observations.jsonl      # Global observations (fallback)\n+-- instincts\u002F\n|   +-- personal\u002F           # Global auto-learned instincts\n|   +-- inherited\u002F          # Global imported instincts\n+-- evolved\u002F\n|   +-- agents\u002F             # Global generated agents\n|   +-- skills\u002F             # Global generated skills\n|   +-- commands\u002F           # Global generated commands\n+-- projects\u002F\n    +-- a1b2c3d4e5f6\u002F       # Project hash (from git remote URL)\n    |   +-- project.json    # Per-project metadata mirror (id\u002Fname\u002Froot\u002Fremote)\n    |   +-- observations.jsonl\n    |   +-- observations.archive\u002F\n    |   +-- instincts\u002F\n    |   |   +-- personal\u002F   # Project-specific auto-learned\n    |   |   +-- inherited\u002F  # Project-specific imported\n    |   +-- evolved\u002F\n    |       +-- skills\u002F\n    |       +-- commands\u002F\n    |       +-- agents\u002F\n    +-- f6e5d4c3b2a1\u002F       # Another project\n        +-- ...\n```\n\n## Scope Decision Guide\n\n| Pattern Type | Scope | Examples |\n|-------------|-------|---------|\n| Language\u002Fframework conventions | **project** | \"Use React hooks\", \"Follow Django REST patterns\" |\n| File structure preferences | **project** | \"Tests in `__tests__`\u002F\", \"Components in src\u002Fcomponents\u002F\" |\n| Code style | **project** | \"Use functional style\", \"Prefer dataclasses\" |\n| Error handling strategies | **project** | \"Use Result type for errors\" |\n| Security practices | **global** | \"Validate user input\", \"Sanitize SQL\" |\n| General best practices | **global** | \"Write tests first\", \"Always handle errors\" |\n| Tool workflow preferences | **global** | \"Grep before Edit\", \"Read before Write\" |\n| Git practices | **global** | \"Conventional commits\", \"Small focused commits\" |\n\n## Instinct Promotion (Project -> Global)\n\nWhen the same instinct appears in multiple projects with high confidence, it's a candidate for promotion to global scope.\n\n**Auto-promotion criteria:**\n- Same instinct ID in 2+ projects\n- Average confidence >= 0.8\n\n**How to promote:**\n\n```bash\n# Promote a specific instinct\npython3 instinct-cli.py promote prefer-explicit-errors\n\n# Auto-promote all qualifying instincts\npython3 instinct-cli.py promote\n\n# Preview without changes\npython3 instinct-cli.py promote --dry-run\n```\n\nThe `\u002Fevolve` command also suggests promotion candidates.\n\n## Confidence Scoring\n\nConfidence evolves over time:\n\n| Score | Meaning | Behavior |\n|-------|---------|----------|\n| 0.3 | Tentative | Suggested but not enforced |\n| 0.5 | Moderate | Applied when relevant |\n| 0.7 | Strong | Auto-approved for application |\n| 0.9 | Near-certain | Core behavior |\n\n**Confidence increases** when:\n- Pattern is repeatedly observed\n- User doesn't correct the suggested behavior\n- Similar instincts from other sources agree\n\n**Confidence decreases** when:\n- User explicitly corrects the behavior\n- Pattern isn't observed for extended periods\n- Contradicting evidence appears\n\n## Why Hooks vs Skills for Observation?\n\n> \"v1 relied on skills to observe. Skills are probabilistic -- they fire ~50-80% of the time based on Claude's judgment.\"\n\nHooks fire **100% of the time**, deterministically. This means:\n- Every tool call is observed\n- No patterns are missed\n- Learning is comprehensive\n\n## Backward Compatibility\n\nv2.1 is fully compatible with v2.0 and v1:\n- Existing global instincts in `~\u002F.claude\u002Fhomunculus\u002Finstincts\u002F` still work as global instincts\n- Existing `~\u002F.claude\u002Fskills\u002Flearned\u002F` skills from v1 still work\n- Stop hook still runs (but now also feeds into v2)\n- Gradual migration: run both in parallel\n\n## Privacy\n\n- Observations stay **local** on your machine\n- Project-scoped instincts are isolated per project\n- Only **instincts** (patterns) can be exported — not raw observations\n- No actual code or conversation content is shared\n- You control what gets exported and promoted\n\n## Related\n\n- [Skill Creator](https:\u002F\u002Fskill-creator.app) - Generate instincts from repo history\n- Homunculus - Community project that inspired the v2 instinct-based architecture (atomic observations, confidence scoring, instinct evolution pipeline)\n- [The Longform Guide](https:\u002F\u002Fx.com\u002Faffaanmustafa\u002Fstatus\u002F2014040193557471352) - Continuous learning section\n\n---\n\n*Instinct-based learning: teaching Claude your patterns, one project at a time.*\n","# Continuous Learning v2.1 - Instinct\n-Based Architecture\n\nAn advanced learning system that turns your Claude Code sessions into reusable knowledge through atomic \"instincts\" - small learned behaviors with confidence scoring.\n\n**v2.1** adds **project-scoped instincts** — React patterns stay in your React project, Python conventions stay in your Python project, and universal patterns (like \"always validate input\") are shared globally.\n\n## When to Activate\n\n- Setting up automatic learning from Claude Code sessions\n- Configuring instinct-based behavior extraction via hooks\n- Tuning confidence thresholds for learned behaviors\n- Reviewing, exporting, or importing instinct libraries\n- Evolving instincts into full skills, commands, or agents\n- Managing project-scoped vs global instincts\n- Promoting instincts from project to global scope\n\n## What's New in v2.1\n\n| Feature | v2.0 | v2.1 |\n|---------|------|------|\n| Storage | Global (~\u002F.claude\u002Fhomunculus\u002F) | Project-scoped (projects\u002F\u003Chash>\u002F) |\n| Scope | All instincts apply everywhere | Project-scoped + global |\n| Detection | None | git remote URL \u002F repo path |\n| Promotion | N\u002FA | Project → global when seen in 2+ projects |\n| Commands | 4 (status\u002Fevolve\u002Fexport\u002Fimport) | 6 (+promote\u002Fprojects) |\n| Cross-project | Contamination risk | Isolated by default |\n\n## What's New in v2 (vs v1)\n\n| Feature | v1 | v2 |\n|---------|----|----|\n| Observation | Stop hook (session end) | PreToolUse\u002FPostToolUse (100% reliable) |\n| Analysis | Main context | Background agent (Haiku) |\n| Granularity | Full skills | Atomic \"instincts\" |\n| Confidence | None | 0.3-0.9 weighted |\n| Evolution | Direct to skill | Instincts -> cluster -> skill\u002Fcommand\u002Fagent |\n| Sharing | None | Export\u002Fimport instincts |\n\n## The Instinct Model\n\nAn instinct is a small learned behavior:\n\n```yaml\n---\nid: prefer-functional-style\ntrigger: \"when writing new functions\"\nconfidence: 0.7\ndomain: \"code-style\"\nsource: \"session-observation\"\nscope: project\nproject_id: \"a1b2c3d4e5f6\"\nproject_name: \"my-react-app\"\n---\n\n# Prefer Functional Style\n\n## Action\nUse functional patterns over classes when appropriate.\n\n## Evidence\n- Observed 5 instances of functional pattern preference\n- User corrected class-based approach to functional on 2025-01-15\n```\n\n**Properties:**\n- **Atomic** -- one trigger, one action\n- **Confidence-weighted** -- 0.3 = tentative, 0.9 = near certain\n- **Domain-tagged** -- code-style, testing, git, debugging, workflow, etc.\n- **Evidence-backed** -- tracks what observations created it\n- **Scope-aware** -- `project` (default) or `global`\n\n## How It Works\n\n```\nSession Activity (in a git repo)\n      |\n      | Hooks capture prompts + tool use (100% reliable)\n      | + detect project context (git remote \u002F repo path)\n      v\n+---------------------------------------------+\n|  projects\u002F\u003Cproject-hash>\u002Fobservations.jsonl  |\n|   (prompts, tool calls, outcomes, project)   |\n+---------------------------------------------+\n      |\n      | Observer agent reads (background, Haiku)\n      v\n+---------------------------------------------+\n|          PATTERN DETECTION                   |\n|   * User corrections -> instinct             |\n|   * Error resolutions -> instinct            |\n|   * Repeated workflows -> instinct           |\n|   * Scope decision: project or global?       |\n+---------------------------------------------+\n      |\n      | Creates\u002Fupdates\n      v\n+---------------------------------------------+\n|  projects\u002F\u003Cproject-hash>\u002Finstincts\u002Fpersonal\u002F |\n|   * prefer-functional.yaml (0.7) [project]   |\n|   * use-react-hooks.yaml (0.9) [project]     |\n+---------------------------------------------+\n|  instincts\u002Fpersonal\u002F  (GLOBAL)               |\n|   * always-validate-input.yaml (0.85) [global]|\n|   * grep-before-edit.yaml (0.6) [global]     |\n+---------------------------------------------+\n      |\n      | \u002Fevolve clusters + \u002Fpromote\n      v\n+---------------------------------------------+\n|  projects\u002F\u003Chash>\u002Fevolved\u002F (project-scoped)   |\n|  evolved\u002F (global)                           |\n|   * commands\u002Fnew-feature.md                  |\n|   * skills\u002Ftesting-workflow.md               |\n|   * agents\u002Frefactor-specialist.md            |\n+---------------------------------------------+\n```\n\n## Project Detection\n\nThe system automatically detects your current project:\n\n1. **`CLAUDE_PROJECT_DIR` env var** (highest priority)\n2. **`git remote get-url origin`** -- hashed to create a portable project ID (same repo on different machines gets the same ID)\n3. **`git rev-parse --show-toplevel`** -- fallback using repo path (machine-specific)\n4. **Global fallback** -- if no project is detected, instincts go to global scope\n\nEach project gets a 12-character hash ID (e.g., `a1b2c3d4e5f6`). A registry file at `~\u002F.claude\u002Fhomunculus\u002Fprojects.json` maps IDs to human-readable names.\n\n## Quick Start\n\n### 1. Enable Observation Hooks\n\nAdd to your `~\u002F.claude\u002Fsettings.json`.\n\n**If installed as a plugin** (recommended):\n\n```json\n{\n  \"hooks\": {\n    \"PreToolUse\": [{\n      \"matcher\": \"*\",\n      \"hooks\": [{\n        \"type\": \"command\",\n        \"command\": \"${CLAUDE_PLUGIN_ROOT}\u002Fskills\u002Fcontinuous-learning-v2\u002Fhooks\u002Fobserve.sh\"\n      }]\n    }],\n    \"PostToolUse\": [{\n      \"matcher\": \"*\",\n      \"hooks\": [{\n        \"type\": \"command\",\n        \"command\": \"${CLAUDE_PLUGIN_ROOT}\u002Fskills\u002Fcontinuous-learning-v2\u002Fhooks\u002Fobserve.sh\"\n      }]\n    }]\n  }\n}\n```\n\n**If installed manually** to `~\u002F.claude\u002Fskills`:\n\n```json\n{\n  \"hooks\": {\n    \"PreToolUse\": [{\n      \"matcher\": \"*\",\n      \"hooks\": [{\n        \"type\": \"command\",\n        \"command\": \"~\u002F.claude\u002Fskills\u002Fcontinuous-learning-v2\u002Fhooks\u002Fobserve.sh\"\n      }]\n    }],\n    \"PostToolUse\": [{\n      \"matcher\": \"*\",\n      \"hooks\": [{\n        \"type\": \"command\",\n        \"command\": \"~\u002F.claude\u002Fskills\u002Fcontinuous-learning-v2\u002Fhooks\u002Fobserve.sh\"\n      }]\n    }]\n  }\n}\n```\n\n### 2. Initialize Directory Structure\n\nThe system creates directories automatically on first use, but you can also create them manually:\n\n```bash\n# Global directories\nmkdir -p ~\u002F.claude\u002Fhomunculus\u002F{instincts\u002F{personal,inherited},evolved\u002F{agents,skills,commands},projects}\n\n# Project directories are auto-created when the hook first runs in a git repo\n```\n\n### 3. Use the Instinct Commands\n\n```bash\n\u002Finstinct-status     # Show learned instincts (project + global)\n\u002Fevolve              # Cluster related instincts into skills\u002Fcommands\n\u002Finstinct-export     # Export instincts to file\n\u002Finstinct-import     # Import instincts from others\n\u002Fpromote             # Promote project instincts to global scope\n\u002Fprojects            # List all known projects and their instinct counts\n```\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `\u002Finstinct-status` | Show all instincts (project-scoped + global) with confidence |\n| `\u002Fevolve` | Cluster related instincts into skills\u002Fcommands, suggest promotions |\n| `\u002Finstinct-export` | Export instincts (filterable by scope\u002Fdomain) |\n| `\u002Finstinct-import \u003Cfile>` | Import instincts with scope control |\n| `\u002Fpromote [id]` | Promote project instincts to global scope |\n| `\u002Fprojects` | List all known projects and their instinct counts |\n\n## Configuration\n\nEdit `config.json` to control the background observer:\n\n```json\n{\n  \"version\": \"2.1\",\n  \"observer\": {\n    \"enabled\": false,\n    \"run_interval_minutes\": 5,\n    \"min_observations_to_analyze\": 20\n  }\n}\n```\n\n| Key | Default | Description |\n|-----|---------|-------------|\n| `observer.enabled` | `false` | Enable the background observer agent |\n| `observer.run_interval_minutes` | `5` | How often the observer analyzes observations |\n| `observer.min_observations_to_analyze` | `20` | Minimum observations before analysis runs |\n\nOther behavior (observation capture, instinct thresholds, project scoping, promotion criteria) is configured via code defaults in `instinct-cli.py` and `observe.sh`.\n\n## File Structure\n\n```\n~\u002F.claude\u002Fhomunculus\u002F\n+-- identity.json           # Your profile, technical level\n+-- projects.json           # Registry: project hash -> name\u002Fpath\u002Fremote\n+-- observations.jsonl      # Global observations (fallback)\n+-- instincts\u002F\n|   +-- personal\u002F           # Global auto-learned instincts\n|   +-- inherited\u002F          # Global imported instincts\n+-- evolved\u002F\n|   +-- agents\u002F             # Global generated agents\n|   +-- skills\u002F             # Global generated skills\n|   +-- commands\u002F           # Global generated commands\n+-- projects\u002F\n    +-- a1b2c3d4e5f6\u002F       # Project hash (from git remote URL)\n    |   +-- project.json    # Per-project metadata mirror (id\u002Fname\u002Froot\u002Fremote)\n    |   +-- observations.jsonl\n    |   +-- observations.archive\u002F\n    |   +-- instincts\u002F\n    |   |   +-- personal\u002F   # Project-specific auto-learned\n    |   |   +-- inherited\u002F  # Project-specific imported\n    |   +-- evolved\u002F\n    |       +-- skills\u002F\n    |       +-- commands\u002F\n    |       +-- agents\u002F\n    +-- f6e5d4c3b2a1\u002F       # Another project\n        +-- ...\n```\n\n## Scope Decision Guide\n\n| Pattern Type | Scope | Examples |\n|-------------|-------|---------|\n| Language\u002Fframework conventions | **project** | \"Use React hooks\", \"Follow Django REST patterns\" |\n| File structure preferences | **project** | \"Tests in `__tests__`\u002F\", \"Components in src\u002Fcomponents\u002F\" |\n| Code style | **project** | \"Use functional style\", \"Prefer dataclasses\" |\n| Error handling strategies | **project** | \"Use Result type for errors\" |\n| Security practices | **global** | \"Validate user input\", \"Sanitize SQL\" |\n| General best practices | **global** | \"Write tests first\", \"Always handle errors\" |\n| Tool workflow preferences | **global** | \"Grep before Edit\", \"Read before Write\" |\n| Git practices | **global** | \"Conventional commits\", \"Small focused commits\" |\n\n## Instinct Promotion (Project -> Global)\n\nWhen the same instinct appears in multiple projects with high confidence, it's a candidate for promotion to global scope.\n\n**Auto-promotion criteria:**\n- Same instinct ID in 2+ projects\n- Average confidence >= 0.8\n\n**How to promote:**\n\n```bash\n# Promote a specific instinct\npython3 instinct-cli.py promote prefer-explicit-errors\n\n# Auto-promote all qualifying instincts\npython3 instinct-cli.py promote\n\n# Preview without changes\npython3 instinct-cli.py promote --dry-run\n```\n\nThe `\u002Fevolve` command also suggests promotion candidates.\n\n## Confidence Scoring\n\nConfidence evolves over time:\n\n| Score | Meaning | Behavior |\n|-------|---------|----------|\n| 0.3 | Tentative | Suggested but not enforced |\n| 0.5 | Moderate | Applied when relevant |\n| 0.7 | Strong | Auto-approved for application |\n| 0.9 | Near-certain | Core behavior |\n\n**Confidence increases** when:\n- Pattern is repeatedly observed\n- User doesn't correct the suggested behavior\n- Similar instincts from other sources agree\n\n**Confidence decreases** when:\n- User explicitly corrects the behavior\n- Pattern isn't observed for extended periods\n- Contradicting evidence appears\n\n## Why Hooks vs Skills for Observation?\n\n> \"v1 relied on skills to observe. Skills are probabilistic -- they fire ~50-80% of the time based on Claude's judgment.\"\n\nHooks fire **100% of the time**, deterministically. This means:\n- Every tool call is observed\n- No patterns are missed\n- Learning is comprehensive\n\n## Backward Compatibility\n\nv2.1 is fully compatible with v2.0 and v1:\n- Existing global instincts in `~\u002F.claude\u002Fhomunculus\u002Finstincts\u002F` still work as global instincts\n- Existing `~\u002F.claude\u002Fskills\u002Flearned\u002F` skills from v1 still work\n- Stop hook still runs (but now also feeds into v2)\n- Gradual migration: run both in parallel\n\n## Privacy\n\n- Observations stay **local** on your machine\n- Project-scoped instincts are isolated per project\n- Only **instincts** (patterns) can be exported — not raw observations\n- No actual code or conversation content is shared\n- You control what gets exported and promoted\n\n## Related\n\n- [Skill Creator](https:\u002F\u002Fskill-creator.app) - Generate instincts from repo history\n- Homunculus - Community project that inspired the v2 instinct-based architecture (atomic observations, confidence scoring, instinct evolution pipeline)\n- [The Longform Guide](https:\u002F\u002Fx.com\u002Faffaanmustafa\u002Fstatus\u002F2014040193557471352) - Continuous learning section\n\n---\n\n*Instinct-based learning: teaching Claude your patterns, one project at a time.*\n",{"name":5,"origin":34,"version":35,"description":7},"ECC","2.1.0","main","a298c929b6cbd662e1fce54302ce520d5ceea1a5",".agents\u002Fskills\u002Fcontinuous-learning-v2","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain","https:\u002F\u002Fgithub.com\u002FPrekzursil","2026-11-02 14:30:57",{"source":8,"skillName":5,"commands":43,"prompt":53,"zipAvailable":54},[44,47,50],{"tool":45,"command":46},"npx","npx skills add Prekzursil\u002Fagent-skills-toolchain --skill continuous-learning-v2",{"tool":48,"command":49},"bunx","bunx skills add Prekzursil\u002Fagent-skills-toolchain --skill continuous-learning-v2",{"tool":51,"command":52},"pnpm","pnpm dlx skills add Prekzursil\u002Fagent-skills-toolchain --skill continuous-learning-v2","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fcontinuous-learning-v2\u002FSKILL.md",true,[56,62,68,72,76,80,84,88,92],{"path":57,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":60,"sourceHtmlUrl":61},"agents\u002Fobserver-loop.sh","SCRIPT","脚本",6783,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fcontinuous-learning-v2\u002Fagents\u002Fobserver-loop.sh",{"path":63,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":66,"sourceHtmlUrl":67},"agents\u002Fobserver.md","REFERENCE","参考文档",7396,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fcontinuous-learning-v2\u002Fagents\u002Fobserver.md",{"path":69,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":70,"sourceHtmlUrl":71},"agents\u002Fsession-guardian.sh",6392,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fcontinuous-learning-v2\u002Fagents\u002Fsession-guardian.sh",{"path":73,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":74,"sourceHtmlUrl":75},"agents\u002Fstart-observer.sh",7448,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fcontinuous-learning-v2\u002Fagents\u002Fstart-observer.sh",{"path":77,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":78,"sourceHtmlUrl":79},"config.json",135,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fcontinuous-learning-v2\u002Fconfig.json",{"path":81,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":82,"sourceHtmlUrl":83},"hooks\u002Fobserve.sh",15309,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fcontinuous-learning-v2\u002Fhooks\u002Fobserve.sh",{"path":85,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":86,"sourceHtmlUrl":87},"scripts\u002Fdetect-project.sh",7761,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fcontinuous-learning-v2\u002Fscripts\u002Fdetect-project.sh",{"path":89,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":90,"sourceHtmlUrl":91},"scripts\u002Finstinct-cli.py",47435,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fcontinuous-learning-v2\u002Fscripts\u002Finstinct-cli.py",{"path":93,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":94,"sourceHtmlUrl":95},"scripts\u002Ftest_parse_instinct.py",33796,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fcontinuous-learning-v2\u002Fscripts\u002Ftest_parse_instinct.py",[97,119,150,177,190,206],{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":29},"01M6DF7D7478R55P46REYH4QAC","clarify-requirements","Resolve genuine pre-execution ambiguity by scanning repo context, generating 1-6 grounded options, and asking 1-3 focused questions via AskUserQuestion. NOT for mid-task use (injection risk); NOT when the goal is already unambiguous; use to disambiguate vague prompts before any file edits.","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Fworkspace-hooks\u002Fskills\u002Fclarify-requirements\u002FSKILL.md",[],[104,105,106,107,108,109,110,111,112,113,114,115,116,117,118],"clarify requirements","clarify","requirements","risk","options","task","prompts","goal","scanning","use","context","repo","injection","execution","file",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":130,"publishedAt":29},"01M6DF79CA4BHJS66J8EZDBPWJ","openmm-md","Run FREE, open-source, Windows-native GPU molecular dynamics via the openmm-md MCP (OpenMM + CUDA on the local NVIDIA GPU). Use for protein \u002F protein-ligand MD when you want a free stack or are on Windows without a Schrodinger license. Covers the full workflow (prepare, solvate, minimize, equilibrate, production, analyze, mmgbsa) AND an honest decision guide vs Schrodinger Desmond, including how to run Desmond legitimately on Linux or a cloud GPU with a real license. This is a deliberately LESSER free alternative and does NOT replace the schrodinger MCP tools. Do NOT use it to pick a free tool when a validated FEP+, WaterMap, IFD-MD, or Prime MM-GBSA result is actually required.","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Fmcp\u002Fopenmm-md-mcp\u002Fskill\u002Fopenmm-md\u002FSKILL.md",[125],{"categoryNo":126,"categoryName":127,"taxonomyType":128,"taxonomyTypeDesc":129},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[131,132,133,134,135,136,137,138,139,140,141,142,143,144,113,145,146,147,148,149],"openmm md","how","decision","pick","linux","analyze","tool","stack","open","NVIDIA","gpu","license","workflow","windows","free","molecular dynamics","local","do","MCP",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":162,"publishedAt":29},"01M6DF76C1MG85VEWP8VZCBNMN","visual-review","Take screenshots of web pages and UI using Playwright for visual review and iteration","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fvisual-review\u002FSKILL.md",[156,159],{"categoryNo":157,"categoryName":158,"taxonomyType":128,"taxonomyTypeDesc":129},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":160,"categoryName":161,"taxonomyType":128,"taxonomyTypeDesc":129},"01JBSEEDCAT000000000000008","测试与质量",[163,164,165,166,167,168,169,170,171,172,132,173,174,175,176],"review","visual","visual review","pages","web","false","iteration","take","check","slides","ui","screenshot","playwright","screenshots",{"skillNo":178,"name":179,"nameZh":6,"description":180,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":181,"categories":182,"keywords":183,"publishedAt":29},"01M6DF73AQVCBZKEN0YXEX9FXP","status","Diagnostic status report — shows metaswarm installation state, project setup, and potential issues","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fstatus\u002FSKILL.md",[],[179,184,185,27,186,187,188,189],"setup","report","installation","project setup","issues","state",{"skillNo":191,"name":192,"nameZh":6,"description":193,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":194,"categories":195,"keywords":197,"publishedAt":29},"01M6DF6X6C2XB0P6GX76P7TTYV","start","Use when starting work on any task, when the user mentions metaswarm, or when the user wants to begin tracked development work","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fstart\u002FSKILL.md",[196],{"categoryNo":126,"categoryName":127,"taxonomyType":128,"taxonomyTypeDesc":129},[192,198,109,199,200,201,113,202,203,204,205],"start issue","issue","ready","work on issue","user","work","work on","development",{"skillNo":207,"name":184,"nameZh":6,"description":208,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":209,"categories":210,"keywords":211,"publishedAt":29},"01M6DF6QMJ9AJKFKHHKRT005PQ","Interactive project setup — detects your project, configures metaswarm, writes project-local files","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fsetup\u002FSKILL.md",[],[184,27,147,212,187,213],"files","interactive"]