Commit Graph

29 Commits

  • fix: make plugin hooks run on Node 21+ and green the suite under modern Node (#2184)
    ROOT CAUSE: hooks load plugin-hook-bootstrap.js via
    `node -e "...; process.argv.splice(1,0,s); require(s)"`. On Node 21+,
    require.main is `undefined` under --eval, so the `if (require.main === module)`
    guard was false and main() never ran — every plugin hook silently no-op'd
    (e.g. the MCP-health PreToolUse hook stopped blocking). CI (Node 18/20) hid
    this; it only surfaces on Node 21+. Fix: also run main() when require.main is
    undefined (the eval-bootstrap case), while staying dormant on real imports.
    
    Also clears pre-existing main debt the full local suite enforces:
    - catalog:sync — README/docs agent+skill counts drifted after recent merges
    - tests/ci/supply-chain-watch-workflow: update checkout SHA to the merged v6.0.3 (#2183)
    - markdownlint + check-unicode-safety --write across docs/skills
    
    Suite: 2683/2683 green under Node v25; lint + unicode clean.
    
    Co-authored-by: ECC Test <ecc@example.test>
  • fix: refresh stale technical content in agents, rules, and skills (#2168)
    Several published examples contained APIs that no longer exist, code that
    does not run, or model versions that drifted from reality:
    
    - agents/performance-optimizer.md used the web-vitals v3 API
      (getCLS/getFID/getLCP/getFCP/getTTFB) and reported FID. web-vitals v4
      renamed the imports to onCLS/onINP/onLCP/onFCP/onTTFB and FID was
      replaced by INP (target < 200ms)
    - rules/common/performance.md pinned stale model versions in the
      model-selection guidance; refresh to the versions the repo itself uses
      (agent.yaml pins claude-opus-4-6) and add the PowerShell variant for
      MAX_THINKING_TOKENS next to the bash export
    - skills/python-patterns/SKILL.md: both get_value examples referenced
      default_value without declaring the parameter (NameError); add
      default_value: Any = None to the EAFP and LBYL signatures
    - skills/frontend-patterns/SKILL.md: the custom useQuery example rebuilt
      refetch whenever callers passed inline fetchers/options, re-triggering
      the effect after every state update (infinite fetch loop). Keep the
      latest fetcher/options in refs so refetch stays referentially stable.
      The PASS-labelled useMemo example mutated its input with in-place sort;
      copy before sorting
    - skills/coding-standards/SKILL.md repeated the same PASS-labelled
      in-place-sort-in-useMemo example; same fix
    - rules/typescript/security.md used a vendor-specific OPENAI_API_KEY in
      generic guidance; switch to a neutral API_KEY
    
    Every hand-maintained copy of the affected content is synced in the same
    change: locale mirrors (ja-JP, ko-KR, pt-BR, tr, zh-CN, zh-TW - each only
    where it carries the affected file) and the .agents/.kiro/.cursor harness
    mirrors. Two structural divergences are left alone and noted here:
    .kiro/steering/performance.md has no extended-thinking control list to
    carry the PowerShell variant, and docs/zh-TW/rules/performance.md keeps an
    older condensed thinking section without the budget-cap line.
    rules/zh/performance.md is intentionally untouched - the rules/zh tree is
    being retired in a separate change
  • fix(skills): keep curl credentials out of argv (#2175)
    * fix(skills): avoid curl credential argv leaks
    
    * test(ci): guard secret curl examples
  • fix(ja-JP): translate frontmatter description to Japanese in 3 skills
    - skill-scout: translate description field
    - tinystruct-patterns: translate description field
    - ui-to-vue: translate description field
  • fix(ja-JP): address review feedback and add 5 missing skills
    - Fix Chinese term '提炼' → '蒸留' in commands/rules-distill.md
    - Fix '重大な所見' (Critical→重大) in agents/opensource-sanitizer.md
    - Fix non-transactional persistence in swift-actor-persistence/SKILL.md:
      add rollback logic so cache stays consistent if disk write fails
    - Clarify anti-pattern wording: 'configurable file URL' → 'externally
      mutable after init' to remove internal inconsistency (P2)
    - Fix broken relative link in videodb/reference/api-reference.md:
      ../../../../../skills/... → ./editor.md
    - Add 5 previously missing SKILL.md translations:
      skill-scout, tinystruct-patterns, ui-to-vue, vite-patterns,
      windows-desktop-e2e
  • docs: fix zh-CN parity — add 44 missing files to ja-JP
    Add files present in zh-CN but missing from ja-JP:
    - commands: claw, context-budget, devfleet, docs, projects, prompt-optimize, rules-distill (7 files)
    - skills: regex-vs-llm-structured-text, remotion-video-creation, repo-scan, research-ops,
      returns-reverse-logistics, rules-distill, rust-patterns, rust-testing, skill-comply,
      skill-stocktake, social-graph-ranker, swift-actor-persistence, swift-concurrency-6-2,
      swift-protocol-di-testing, swiftui-patterns, team-builder, terminal-ops, token-budget-advisor,
      ui-demo, unified-notifications-ops, video-editing, videodb (+reference/*), visa-doc-translate,
      workspace-surface-audit, x-api (37 files)
    
    Result: ja-JP now has 517 files vs zh-CN 412 files.
    zh-CN parity: 0 missing files (complete parity achieved).
  • docs: add native Japanese translation of ECC documentation (ja-JP)
    Translate everything-claude-code repository to Japanese including:
    - 17 root documentation files
    - 60 agent documentation files
    - 80 command documentation files
    - 99 rule files across 18 language directories (common, angular, arkts, cpp, csharp, dart, fsharp, golang, java, kotlin, perl, php, python, ruby, rust, swift, typescript, web)
    - 199 skill documentation files
    
    Total: 455 files translated to Japanese with:
    - Consistent terminology glossary applied throughout
    - YAML field names preserved in English (name, description, etc.)
    - Code blocks and examples untouched (comments translated)
    - Markdown structure and relative links preserved
    - Professional translation maintaining technical accuracy
    
    This translation expands ECC accessibility to Japanese-speaking developers and teams.
    
    Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
  • fix: integrate recent hook and docs PRs (#1905)
    Integrates useful changes from #1882, #1884, #1889, #1893, #1898, #1899, and #1903:
    - fix rule install docs to preserve language directories
    - correct Ruby security command examples
    - harden dev-server hook command-substitution parsing
    - add Prisma patterns skill and catalog/package surfaces
    - allow first-time protected config creation while blocking existing configs
    - read cost metrics from Stop hook transcripts
    - emit suggest-compact additionalContext on stdout
    
    Co-authored-by: Jamkris <dltmdgus1412@gmail.com>
    Co-authored-by: Levi-Evan <levishantz@gmail.com>
    Co-authored-by: gaurav0107 <gauravdubey0107@gmail.com>
    Co-authored-by: richm-spp <richard.millar@salarypackagingplus.com.au>
    Co-authored-by: zomia <zomians@outlook.jp>
    Co-authored-by: donghyeun02 <donghyeun02@gmail.com>
  • feat: add Quarkus handling
    Adds Quarkus handling across the Java skill/reviewer surface, with maintainer follow-up fixes for duplicate catalog entries, required skill sections, localized snippet structure, and current main alignment.\n\nValidation run locally on the final PR head:\n- NODE_PATH=/Users/affoon/GitHub/ECC/everything-claude-code/node_modules node scripts/ci/validate-install-manifests.js\n- NODE_PATH=/Users/affoon/GitHub/ECC/everything-claude-code/node_modules node scripts/ci/validate-skills.js\n- NODE_PATH=/Users/affoon/GitHub/ECC/everything-claude-code/node_modules node scripts/ci/catalog.js --text\n- npx --yes markdownlint-cli docs/ECC-2.0-GA-ROADMAP.md\n- git diff --check\n- NODE_PATH=/Users/affoon/GitHub/ECC/everything-claude-code/node_modules node tests/run-all.js (2324 passed, 0 failed)
  • docs(strategic-compact): fix hook command path in zh-CN/zh-TW/ja-JP SKILL.md (#1701)
    Extends the hook command path correction from PR #1682 (English source) to
    the zh-CN, zh-TW, and ja-JP translated mirrors so the PreToolUse hook
    example matches the actual script location at
    ~/.claude/scripts/hooks/suggest-compact.js.
    
    Changes per locale:
    
    - docs/zh-CN/skills/strategic-compact/SKILL.md: update both command strings
      from ~/.claude/skills/strategic-compact/suggest-compact.js to
      ~/.claude/scripts/hooks/suggest-compact.js.
    
    - docs/zh-TW/skills/strategic-compact/SKILL.md: replace the outdated
      suggest-compact.sh reference (the .sh variant was removed in merged PR
      #41) with the current node-invoked suggest-compact.js, and align the
      matcher block structure with the English canonical SKILL.md post-#1682.
    
    - docs/ja-JP/skills/strategic-compact/SKILL.md: same .sh -> .js migration
      and matcher alignment as zh-TW.
    
    The ko-KR mirror already uses the correct CLAUDE_PLUGIN_ROOT-based hook
    path and needs no change.
    
    Refs #1675
  • docs(ja-JP): translate plain text code blocks to Japanese
    Translate English prose inside plain text code blocks (```text, ```)
    across ja-JP documentation to Japanese, following the same approach
    as PR #753 (zh-CN translation).
    
    Translated content includes:
    - Output template labels and status messages
    - Folder tree inline comments
    - CLI workflow descriptions
    - Error/warning message examples
    - Commit message templates and PR title examples
    
    Technical identifiers, file paths, and actual code remain untranslated.
  • feat: add security guides and sanitize external links across repo
    New articles:
    - the-security-guide.md: "The Shorthand Guide to Securing Your Agent" (595 lines)
      Attack vectors, sandboxing, sanitization, OWASP Top 10, observability
    - the-openclaw-guide.md: "The Hidden Danger of OpenClaw" (470 lines)
      Security analysis of OpenClaw, MiniClaw thesis, industry evidence
    
    External link sanitization (22 files across EN, zh-CN, zh-TW, ja-JP, .cursor):
    - Removed third-party GitHub links from skills and guides
    - Replaced with inline descriptions to prevent transitive prompt injection
    - Kept official org links (Anthropic, Google, Supabase, Mixedbread)
  • feat(ecc): prune plugin 43→12 items, promote 7 rules to .claude/rules/ (#245)
    ECC community plugin pruning: removed 530+ non-essential files
    (.cursor/, .opencode/, docs/ja-JP, docs/zh-CN, docs/zh-TW,
    language-specific skills/agents/rules). Retained 4 agents,
    3 commands, 5 skills. Promoted 13 rule files (8 common + 5
    typescript) to .claude/rules/ for CC native loading. Extracted
    reusable patterns to EXTRACTED-PATTERNS.md.