Commit Graph

37 Commits

  • feat(skills): add swift-protocol-di-testing skill
    Protocol-based dependency injection patterns for testable Swift code
    with Swift Testing framework examples.
  • fix: include .md files in instinct-cli glob (completes #216)
    The observer agent creates instinct files as .md with YAML frontmatter,
    but load_all_instincts() only globbed *.yaml and *.yml. Add *.md to the
    glob so instinct-cli status discovers all instinct files.
  • fix: instinct-cli glob and evolve --generate (fixes #216, #217)
    - Load both .yaml and .yml files in load_all_instincts() (#216)
      The *.yaml-only glob missed .yml files, causing 'No instincts found'
    - Implement evolve --generate to create skill/command/agent files (#217)
      Previously printed a stub message. Now generates SKILL.md, command .md,
      and agent .md files from the clustering analysis into ~/.claude/homunculus/evolved/
  • fix: add input validation, date range checks, and security hardening
    - validate-agents.js: reject invalid model names in agent frontmatter
    - package-manager.js: validate script/binary names against shell injection
    - session-manager.js: reject impossible month/day values in filenames
    - utils.js: support options.all for replaceInFile string patterns
    - strategic-compact/SKILL.md: fix hook matcher syntax and script reference
    - install.sh: warn when overwriting existing rule customizations
    - Add 24 new tests covering all validation and edge cases
  • feat: add docker-patterns skill for containerized development
    Docker Compose for local dev, networking, volume strategies, container
    security hardening, debugging commands, and anti-patterns.
    
    Complements the existing deployment-patterns skill which covers CI/CD
    and production Dockerfiles.
    
    Closes #121
  • refactor: move embedded patterns from agents to skills (#174)
    Reduces the 6 largest agent prompts by 79-87%, saving ~2,800 lines
    that loaded into subagent context on every invocation.
    
    Changes:
    - e2e-runner.md: 797 → 107 lines (-87%)
    - database-reviewer.md: 654 → 91 lines (-86%)
    - security-reviewer.md: 545 → 108 lines (-80%)
    - build-error-resolver.md: 532 → 114 lines (-79%)
    - doc-updater.md: 452 → 107 lines (-76%)
    - python-reviewer.md: 469 → 98 lines (-79%)
    
    Patterns moved to on-demand skills (loaded only when referenced):
    - New: skills/e2e-testing/SKILL.md (Playwright patterns, POM, CI/CD)
    - Existing: postgres-patterns, security-review, python-patterns
  • fix: pass transcript_path via stdin JSON in integration tests (#209)
    Integration tests were still passing CLAUDE_TRANSCRIPT_PATH as an env
    var, but evaluate-session.js now reads transcript_path from stdin JSON.
    Also improves strategic-compact skill with decision guide and survival table.
  • docs: add 'When to Activate' sections to 14 skill definitions
    Add activation triggers to skills that were missing them, helping
    Claude Code determine when to load each skill contextually.
  • fix: migrate hooks to stdin JSON input, fix duplicate main() calls, add threshold validation
    - Migrate session-end.js and evaluate-session.js from CLAUDE_TRANSCRIPT_PATH
      env var to stdin JSON transcript_path (correct hook input mechanism)
    - Remove duplicate main() calls that ran before stdin was read, causing
      session files to be created with empty data
    - Add range validation (1-10000) on COMPACT_THRESHOLD in suggest-compact.js
      to prevent negative or absurdly large thresholds
    - Add integration/hooks.test.js to tests/run-all.js so CI runs all 97 tests
    - Update evaluate-session.sh to parse transcript_path from stdin JSON
    - Update hooks.test.js to pass transcript_path via stdin instead of env var
    - Sync .cursor/ copies
  • feat: add 3 new skills, JS syntax validation in hooks CI, and edge case tests
    - New skills: api-design, database-migrations, deployment-patterns
    - validate-hooks.js: validate inline JS syntax in node -e hook commands
    - utils.test.js: edge case tests for findFiles with null/undefined inputs
    - README: update skill count to 35, add new skills to directory tree
  • fix: harden CI validators, shell scripts, and expand test suite
    - Add try-catch around readFileSync in validate-agents, validate-commands,
      validate-skills to handle TOCTOU races and file read errors
    - Add validate-hooks.js and all test suites to package.json test script
      (was only running 4/5 validators and 0/4 test files)
    - Fix shell variable injection in observe.sh: use os.environ instead of
      interpolating $timestamp/$OBSERVATIONS_FILE into Python string literals
    - Fix $? always being 0 in start-observer.sh: capture exit code before
      conditional since `if !` inverts the status
    - Add OLD_VERSION validation in release.sh and use pipe delimiter in sed
      to avoid issues with slash-containing values
    - Add jq dependency check in evaluate-session.sh before parsing config
    - Sync .cursor/ copies of all modified shell scripts
  • fix: harden error handling, fix TOCTOU races, and improve test accuracy
    Core library fixes:
    - session-manager.js: wrap all statSync calls in try-catch to prevent
      TOCTOU crashes when files are deleted between readdir and stat
    - session-manager.js: use birthtime||ctime fallback for Linux compat
    - session-manager.js: remove redundant existsSync before readFile
    - utils.js: fix findFiles TOCTOU race on statSync inside readdir loop
    
    Hook improvements:
    - Add 1MB stdin buffer limits to all PostToolUse hooks to prevent
      unbounded memory growth from large payloads
    - suggest-compact.js: use fd-based atomic read+write for counter file
      to reduce race window between concurrent invocations
    - session-end.js: log when transcript file is missing, check
      replaceInFile return value for failed timestamp updates
    - start-observer.sh: log claude CLI failures instead of silently
      swallowing them, check observations file exists before analysis
    
    Test fixes:
    - Fix blocking hook tests to send matching input (dev server command)
      and expect correct exit code 2 instead of 1
  • docs: expand Spring Boot skills and add Go microservice example
    - springboot-security: add code examples for authorization, input validation,
      SQL injection prevention, password encoding, CORS, rate limiting, and secrets
      management (119 → 261 lines)
    - springboot-verification: add unit test, Testcontainers integration test,
      MockMvc API test patterns, and security scan grep commands (100 → 222 lines)
    - Add Go microservice example (gRPC + PostgreSQL + clean architecture)
    - Update README directory tree with new example
  • fix: sync .cursor observe.sh and fix suggest-compact.sh session tracking
    - Sync .cursor/observe.sh with corrected main version (use stdin pipe
      instead of broken heredoc json.loads pattern)
    - Fix suggest-compact.sh to use CLAUDE_SESSION_ID instead of $$ which
      gives a new PID per invocation, preventing counter from incrementing
  • fix: resolve multiple reported issues (#205, #182, #188, #172, #173) (#207)
    * fix: resolve multiple reported issues (#205, #182, #188, #172, #173)
    
    - fix(observe.sh): replace triple-quote JSON parsing with stdin pipe to
      prevent ~49% parse failures on payloads with quotes/backslashes/unicode
    - fix(hooks.json): correct matcher syntax to use simple tool name regexes
      instead of unsupported logical expressions; move command/path filtering
      into hook scripts; use exit code 2 for blocking hooks
    - fix(skills): quote YAML descriptions containing colons in 3 skill files
      and add missing frontmatter to 2 skill files for Codex CLI compatibility
    - feat(rules): add paths: filters to all 15 language-specific rule files
      so they only load when working on matching file types
    - fix(agents): align model fields with CONTRIBUTING.md recommendations
      (opus for planner/architect, sonnet for reviewers/workers, haiku for
      doc-updater)
    
    * ci: use AgentShield GitHub Action instead of npx
    
    Switch from npx ecc-agentshield to uses: affaan-m/agentshield@v1
    for proper GitHub Action demo and marketplace visibility.
  • Merge pull request #189 from zdocapp/upstreawm/fix-markdownlint-error
    fix: resolve markdownlint issues in documentation
  • feat: add AgentShield security-scan skill and README integration
    New skill: /security-scan wraps ecc-agentshield to audit .claude/ configs
    for vulnerabilities, misconfigs, and injection risks.
    
    Covers: CLAUDE.md secrets, settings.json permissions, MCP server risks,
    hook injection, agent tool restrictions. Produces A-F security grade.
    
    Also adds AgentShield section to Ecosystem Tools in README with
    links to GitHub repo and npm package.
  • fix: resolve markdownlint issues in documentation
    - Remove trailing whitespace from inline code
    - Add blank line before table
    - Fix heading levels to ensure proper hierarchy
    - Convert bare URLs to markdown links
  • feat: add nutrient-document-processing skill (#166)
    Add nutrient-document-processing skill for PDF conversion, OCR, redaction, signing, and form filling via Nutrient DWS API.
  • fix: preserve content after frontmatter in parse_instinct_file() (#161)
    parse_instinct_file() was appending the instinct and resetting state
    when frontmatter ended (second ---), before any content lines could be
    collected. This caused all content (Action, Evidence, Examples) to be
    lost during import.
    
    Fix: only set in_frontmatter=False when frontmatter ends. The existing
    logic at the start of next frontmatter (or EOF) correctly appends the
    instinct with its collected content.
    
    Fixes #148
  • feat(skills): add configure-ecc interactive installation wizard
    Add a new skill that guides users through selective installation of
    ECC skills and rules via AskUserQuestion. Clones the repo to /tmp,
    lets users choose components and install level (user/project), verifies
    path correctness, offers optimization, and cleans up on completion.
    
    Co-authored-by: Hor1zonZzz <Hor1zonZzz@users.noreply.github.com>
    Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
  • feat: add Python/Django support and enhance READMEs (#139)
    ## Python Support
    - **agents/python-reviewer.md**: Expert Python code review agent with PEP 8 compliance, type hints, security, and performance checks
    - **commands/python-review.md**: Slash command for automated Python code review with ruff, mypy, pylint, black, bandit
    - **skills/python-patterns/SKILL.md**: Python idioms, type hints, error handling, context managers, decorators, concurrency
    - **skills/python-testing/SKILL.md**: pytest configuration, fixtures, parametrization, mocking, async testing, TDD methodology
    
    ## Django Support
    - **skills/django-patterns/SKILL.md**: Django architecture, DRF patterns, project structure, QuerySets, serializers, ViewSets, service layer, caching
    - **skills/django-security/SKILL.md**: Django security best practices, authentication, CSRF, SQL injection, XSS prevention, production settings
    - **skills/django-tdd/SKILL.md**: Django testing with pytest-django, Factory Boy, model testing, API testing, integration testing
    - **skills/django-verification/SKILL.md**: Pre-deployment verification loop including migrations, tests, security scans, performance checks
    
    ## Documentation Enhancements
    - **Quick Start**: Added 3-step quick start guide to all READMEs (EN, zh-CN, zh-TW)
    - **Beautification**: Added emoji icons for better visual hierarchy across all READMEs
    - **.claude-plugin/plugin.json**: Added python-reviewer to agents list
    
    All files follow project conventions with proper frontmatter, markdown formatting, and comprehensive code examples.
    
    Co-authored-by: Freakz3z <freakk@FreakkdeMacBook-Air.local>
    Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
  • feat(skills): add Java Spring Boot skills
    Adds 6 new skills for Java Spring Boot development:
    - java-coding-standards: naming, immutability, Optional, streams
    - springboot-patterns: REST API, service layer, caching, async
    - springboot-tdd: JUnit 5, Mockito, MockMvc, Testcontainers
    - springboot-security: Spring Security, validation, CSRF
    - springboot-verification: Maven/Gradle build verification
    - jpa-patterns: entity design, relationships
    
    Thanks @examin!
  • fix: use CLAUDE_PLUGIN_ROOT for continuous-learning-v2 paths
    Fixes #113
    
    The instinct commands referenced hardcoded paths that only work with
    manual installation (~/.claude/skills/...). When installed as a plugin,
    files are at ~/.claude/plugins/cache/.../skills/...
    
    Changes:
    - Updated instinct-status, instinct-import, evolve commands to use
      ${CLAUDE_PLUGIN_ROOT} with fallback to manual path
    - Updated observe.sh hook documentation with both install methods
    - Updated SKILL.md with plugin vs manual installation instructions
    - Removed duplicate commands from skills/continuous-learning-v2/commands/
      (already exist in commands/)
    
    Users should use ${CLAUDE_PLUGIN_ROOT} in their hooks config when
    installed as a plugin.
  • fix: add language labels to fenced code blocks for MD040 compliance
    Add `text` language identifier to unlabeled fenced code blocks
    to satisfy markdownlint MD040 rule across Go documentation files.
  • feat: add comprehensive Golang language support
    Add Go-specific agents, skills, and commands for idiomatic Go development:
    
    Agents:
    - go-reviewer: Go code review for concurrency, error handling, security
    - go-build-resolver: Fix Go build errors with minimal changes
    
    Skills:
    - golang-patterns: Idiomatic Go patterns, best practices, conventions
    - golang-testing: TDD, table-driven tests, benchmarks, fuzzing
    
    Commands:
    - /go-review: Invoke Go code reviewer
    - /go-test: Go TDD workflow with coverage
    - /go-build: Fix Go build/vet/lint errors
    
    Also updates README.md to document the new Go support.
  • feat: v1.1.0 release - session ID tracking, async hooks, new skills
    - Add session ID to session filenames (Issue #62)
    - Add getSessionIdShort() helper for unique per-session tracking
    - Add async hooks documentation with example
    - Create iterative-retrieval skill for progressive context refinement
    - Add continuous-learning-v2 skill with instinct-based learning
    - Add ecc.tools ecosystem section to README
    - Update skills list in README
    
    All 67 tests passing.
  • feat: add cloud infrastructure security skill (#44)
    Adds cloud infrastructure security skill with AWS/Vercel/Railway patterns
  • feat(agents): add database-reviewer agent with Supabase patterns (#48)
    Adds comprehensive database-reviewer agent with Supabase PostgreSQL best practices
  • fix: multiple community-reported issues
    - feat(plugin.json): add agents declaration to make 9 agents visible
      in /agents command (fixes #66, closes PR #67)
    
    - fix(backend-patterns): correct requirePermission HOF pattern to
      properly wrap handlers instead of expecting Request directly
      (fixes #54, closes PR #63)
    
    - docs(user-CLAUDE): add privacy guideline about redacting secrets
      from logs before sharing (fixes #38, closes PR #39)
    
    - fix(eval-harness): add mandatory frontmatter with name, description,
      and tools fields (closes PR #58)
  • feat: package as Claude Code plugin with marketplace distribution
    - Add .claude-plugin/plugin.json manifest for direct installation
    - Add .claude-plugin/marketplace.json for marketplace distribution
    - Reorganize skills to proper skill-name/SKILL.md format
    - Update hooks.json with relative paths for portability
    - Add new skills: continuous-learning, strategic-compact, eval-harness, verification-loop
    - Add new commands: checkpoint, eval, orchestrate, verify
    - Update README with plugin installation instructions
    
    Install via:
      /plugin marketplace add affaan-m/everything-claude-code
      /plugin install everything-claude-code@everything-claude-code
  • feat: add continuous learning skill with session examples
    Stop hook-based pattern extraction - no README, comments in .sh file.
  • Initial release: Complete Claude Code configuration collection
    Battle-tested configs from 10+ months of daily Claude Code usage.
    Won Anthropic x Forum Ventures hackathon building zenith.chat.
    
    Includes:
    - 9 specialized agents (planner, architect, tdd-guide, code-reviewer, etc.)
    - 9 slash commands (tdd, plan, e2e, code-review, etc.)
    - 8 rule files (security, coding-style, testing, git-workflow, etc.)
    - 7 skills (coding-standards, backend-patterns, frontend-patterns, etc.)
    - Hooks configuration (PreToolUse, PostToolUse, Stop)
    - MCP server configurations (15 servers)
    - Plugin/marketplace documentation
    - Example configs (project CLAUDE.md, user CLAUDE.md, statusline)
    
    Read the full guide: https://x.com/affaanmustafa/status/2012378465664745795