mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-02-16 19:33:11 +08:00
* 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.
1.0 KiB
1.0 KiB
paths
| paths | ||||
|---|---|---|---|---|
|
TypeScript/JavaScript Patterns
This file extends common/patterns.md with TypeScript/JavaScript specific content.
API Response Format
interface ApiResponse<T> {
success: boolean
data?: T
error?: string
meta?: {
total: number
page: number
limit: number
}
}
Custom Hooks Pattern
export function useDebounce<T>(value: T, delay: number): T {
const [debouncedValue, setDebouncedValue] = useState<T>(value)
useEffect(() => {
const handler = setTimeout(() => setDebouncedValue(value), delay)
return () => clearTimeout(handler)
}, [value, delay])
return debouncedValue
}
Repository Pattern
interface Repository<T> {
findAll(filters?: Filters): Promise<T[]>
findById(id: string): Promise<T | null>
create(data: CreateDto): Promise<T>
update(id: string, data: UpdateDto): Promise<T>
delete(id: string): Promise<void>
}