mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-04-01 06:33:27 +08:00
- Expand permissions.allow (git, node, npm, npx, ls, cat, Read, Edit, Write, Glob, Grep) to reduce approval prompts - Set CLAUDE_ECC_MODE=standard in env for consistent hook profile - Gate stop-hook-git-check.sh behind ECC_GIT_CHECK=1 to prevent blocking mid-session - Add project-level Node.js rules for ECC repo (stack, file conventions, hook dev standards) - observe.sh confirmed already async — no change needed https://claude.ai/code/session_014SqRA9y6HwVVPGeSCJfwVF
2.0 KiB
2.0 KiB
Node.js Rules for everything-claude-code
Project-specific rules for the ECC codebase. Extends common rules.
Stack
- Runtime: Node.js >=18 (no transpilation, plain CommonJS)
- Test runner:
node tests/run-all.js— individual files vianode tests/**/*.test.js - Linter: ESLint (
@eslint/js, flat config) - Coverage: c8
- Lint: markdownlint-cli for
.mdfiles
File Conventions
scripts/— Node.js utilities, hooks. CommonJS (require/module.exports)agents/,commands/,skills/,rules/— Markdown with YAML frontmattertests/— Mirror thescripts/structure. Test files named*.test.js- File naming: lowercase with hyphens (e.g.
session-start.js,post-edit-format.js)
Code Style
- CommonJS only — no ESM (
import/export) unless file ends in.mjs - No TypeScript — plain
.jsthroughout - Prefer
constoverlet; nevervar - Keep hook scripts under 200 lines — extract helpers to
scripts/lib/ - All hooks must
exit 0on non-critical errors (never block tool execution unexpectedly)
Hook Development
- Hook scripts receive JSON on stdin — always
const input = JSON.parse(fs.readFileSync(0, 'utf8')) - Async hooks: mark
"async": trueinsettings.jsonwith a timeout ≤30s - Blocking hooks (PreToolUse, stop): keep fast (<200ms) — no network calls
- Use
run-with-flags.jswrapper for all hooks soCLAUDE_ECC_MODEgating works - Always exit 0 on parse errors; log to stderr with
[HookName]prefix
Testing Requirements
- Run
node tests/run-all.jsbefore committing - New scripts in
scripts/lib/require a matching test intests/lib/ - New hooks require at least one integration test in
tests/hooks/
Markdown / Agent Files
- Agents: YAML frontmatter with
name,description,tools,model - Skills: sections — When to Use, How It Works, Examples
- Commands:
description:frontmatter line required - Run
npx markdownlint-cli '**/*.md' --ignore node_modulesbefore committing