From synapse-ears
Project-aware EARS initialization. Scans the current project, detects tech stack, and generates customized CLAUDE.md, KNOWN_ISSUES.md, traces/, ears-config.json, and optionally Cursor rules and Codex AGENTS.md. Use when the user says /ears-init, "initialize EARS", "setup EARS for this project", "adapt EARS", or when starting work on a new project that lacks EARS configuration.
How this skill is triggered — by the user, by Claude, or both
Slash command
/synapse-ears:ears-initThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Analyze the current project and generate customized EARS configuration files so that Claude Code (and optionally Cursor and Codex) can capture knowledge effectively.
Analyze the current project and generate customized EARS configuration files so that Claude Code (and optionally Cursor and Codex) can capture knowledge effectively.
Scan the project to build a profile:
Detect language and framework:
package.json → Node.js/TypeScriptpyproject.toml or setup.py or requirements.txt → PythonCargo.toml → Rustgo.mod → Gopom.xml or build.gradle → Java/Kotlin*.sln or *.csproj → C#/.NETMakefile + *.c/*.cpp/*.h → C/C++Gemfile → Rubymix.exs → ElixirDetect build commands:
package.json → read scripts (build, test, dev, start)pyproject.toml → read [project.scripts] and [tool.pytest]Makefile → list top-level targetsCargo.toml → cargo build, cargo testgo.mod → go build, go testDetect test commands:
pytest, python -m unittest, toxjest, vitest, mocha, npm testcargo testgo test ./...mvn test, gradle testUnderstand architecture:
Check for existing EARS artifacts:
CLAUDE.md → exists? has EARS section?KNOWN_ISSUES.md → exists?LEARNING.md → exists?traces/ → exists? has content?ears-config.json → exists?.cursor/rules/ → has EARS rules?AGENTS.md → exists?Use the project analysis to fill in a CLAUDE.md. Use the template from this plugin's templates/PROJECT-CLAUDE.md as the base structure.
If CLAUDE.md already exists:
If CLAUDE.md does not exist:
The EARS section must include:
[EARS] promptsCreate the directory structure and files:
traces/ directory — create if missing
Initial trace.md — ask user for the current task name, create traces/<task-name>/trace.md:
# Trace: <task-name>
Started: <current timestamp>
KNOWN_ISSUES.md — create from template if missing
LEARNING.md — create if missing:
# Learning Log
Tech decisions, new concepts, mistakes, and lessons for this project.
ears-config.json — create with project-specific error patterns:
For Python projects:
{
"error_patterns": [
"Traceback (most recent call last)",
"SyntaxError:", "TypeError:", "ValueError:", "KeyError:",
"IndexError:", "AttributeError:", "ImportError:",
"ModuleNotFoundError:", "FileNotFoundError:", "RuntimeError:",
"AssertionError:", "PermissionError:", "ConnectionError:"
],
"checkpoint_interval": 10,
"error_cooldown_seconds": 120,
"checkpoint_cooldown_seconds": 600,
"ignore_paths": [".claude/", ".git/", "__pycache__/", ".venv/", ".mypy_cache/"]
}
For Node.js/TypeScript projects:
{
"error_patterns": [
"ReferenceError:", "TypeError:", "SyntaxError:", "RangeError:",
"ENOENT:", "EACCES:", "ECONNREFUSED:", "ERR_MODULE_NOT_FOUND",
"Cannot find module", "Unexpected token", "FATAL ERROR:",
"UnhandledPromiseRejection"
],
"checkpoint_interval": 10,
"error_cooldown_seconds": 120,
"checkpoint_cooldown_seconds": 600,
"ignore_paths": [".git/", "node_modules/", "dist/", ".next/", "coverage/"]
}
For Rust projects:
{
"error_patterns": [
"error[E", "panicked at", "fatal runtime error",
"thread 'main' panicked", "cannot find", "mismatched types",
"borrow of moved value", "lifetime"
],
"checkpoint_interval": 10,
"error_cooldown_seconds": 120,
"checkpoint_cooldown_seconds": 600,
"ignore_paths": [".git/", "target/"]
}
For Go projects:
{
"error_patterns": [
"panic:", "fatal error:", "undefined:", "cannot use",
"too many arguments", "not enough arguments",
"imported and not used", "declared and not used"
],
"checkpoint_interval": 10,
"error_cooldown_seconds": 120,
"checkpoint_cooldown_seconds": 600,
"ignore_paths": [".git/", "vendor/"]
}
For other/mixed projects: use the default patterns from the hook.
Ask the user: "Do you use Cursor or Codex for this project? I can generate EARS rules for them too."
If Cursor is used:
Generate .cursor/rules/ears-project.mdc (create .cursor/rules/ if needed):
templates/cursor-ears.mdc templatealwaysApply: trueIf Codex is used:
Generate project-level AGENTS.md:
templates/PROJECT-AGENTS.md template~/.claude/scripts/ears-trace.py existshooks/ears-trace.py from the plugin to ~/.claude/scripts/ears-trace.py~/.claude/settings.json has PostToolUse hooks configuredAfter completion, display a summary:
EARS initialized for <project-name>:
- CLAUDE.md: <created | updated | already exists>
- traces/<task>/trace.md: created
- KNOWN_ISSUES.md: <created | already exists>
- LEARNING.md: <created | already exists>
- ears-config.json: created (<tech-stack> patterns)
- Cursor rules: <created | skipped>
- Codex AGENTS.md: <created | skipped>
- Hook: <upgraded | current | skipped>
You're ready to go. EARS will automatically prompt you to record
errors, checkpoints, discoveries, and dead ends as you work.
npx claudepluginhub chosenx-gpu/synapse --plugin synapse-earsBootstraps or updates projects for Claude Code — generates CLAUDE.md with progressive disclosure docs, installs auto-format hooks, sets up test infrastructure, audits existing docs against source code. Supports single projects, monorepos, and multi-repo workspaces.
Scans codebase to auto-generate CLAUDE.md project config and .rune/ state files for full context in AI coding sessions. Use on new repos or missing/stale context.
Guides project setup through 6 phases: detects tech stack from package.json/requirements.txt/etc., creates CLAUDE.md, configures MCP memory and auto-loop hooks. For new/existing Claude Code projects.