Add hooks and CLAUDE.md resource types with install/uninstall scripts

Introduces two new resource types (hooks, claude-md) with full CRUD,
   visual hook config editor, section-delimited CLAUDE.md installs,
   uninstall endpoints, and shell injection hardening in sync scripts.
This commit is contained in:
Alejandro Martinez
2026-02-16 11:51:33 +01:00
parent c1a9442868
commit b86c9f3e3a
33 changed files with 2345 additions and 204 deletions

View File

@@ -0,0 +1,37 @@
---
name: Code Reviewer
description: An agent specialized in reviewing code for best practices, security issues, and performance.
author: Alejandro Martinez
author-email: amartinez2@certinia.com
tags: code-review, quality
tools: Read, Glob, Grep, WebSearch
model: claude-sonnet-4-5-20250929
permissionMode: plan
maxTurns: 10
skills: example-skill
---
# Code Reviewer Agent
You are a code review specialist. When asked to review code, follow these steps:
## Process
1. **Read** the files or changes to be reviewed
2. **Analyze** for:
- Security vulnerabilities (OWASP top 10)
- Performance issues
- Code style and consistency
- Error handling gaps
- Test coverage
3. **Report** findings organized by severity (critical, warning, suggestion)
## Output Format
For each finding:
- **File**: path and line number
- **Severity**: Critical / Warning / Suggestion
- **Issue**: Clear description
- **Fix**: Recommended solution
Always start with a summary of overall code quality before listing individual findings.

0
data/claude-md/.gitkeep Normal file
View File

View File

@@ -0,0 +1,19 @@
---
name: Concise Technical
description: Short, direct responses focused on code and technical accuracy. No fluff.
keep-coding-instructions: true
tags: concise, technical
author: Alejandro Martinez
author-email: amartinez2@certinia.com
---
# Concise Technical Style
Follow these formatting rules for all responses:
- **Be brief**: Get to the point immediately. No preambles like "Sure, I can help with that."
- **Code first**: When the answer is code, show the code before explaining it
- **No redundancy**: Don't repeat the question back. Don't summarize what you're about to do.
- **Bullet points**: Use bullets over paragraphs when listing multiple items
- **Technical precision**: Use exact terminology. Reference specific APIs, functions, and patterns by name.
- **Skip obvious context**: Don't explain basic concepts unless asked

View File

@@ -0,0 +1,38 @@
---
name: TypeScript Strict
description: Enforce strict TypeScript patterns and conventions for all TS/TSX files.
paths: src/**/*.ts, src/**/*.tsx
tags: typescript, conventions
author: Alejandro Martinez
author-email: amartinez2@certinia.com
---
# TypeScript Strict Rules
When working with TypeScript files, always follow these conventions:
## Type Safety
- Never use `any` — prefer `unknown` with type narrowing
- Always define return types for exported functions
- Use `readonly` for arrays and objects that shouldn't be mutated
- Prefer `interface` over `type` for object shapes (except unions/intersections)
## Imports
- Use named imports, not default imports
- Group imports: external libs, then internal modules, then relative paths
- No circular dependencies
## Naming
- `camelCase` for variables and functions
- `PascalCase` for types, interfaces, and classes
- `SCREAMING_SNAKE_CASE` for constants
- Prefix boolean variables with `is`, `has`, `should`, `can`
## Error Handling
- Never swallow errors silently (empty catch blocks)
- Use custom error classes for domain errors
- Always type error parameters in catch blocks

View File

@@ -0,0 +1,10 @@
---
name: testeo
description: Un test de skill
tags: test
allowed-tools: Bash, Read, Write, Edit
model: claude-opus-4-6
agent: Plan
---
# Es solo un prueba

View File

@@ -0,0 +1 @@
template

View File

@@ -0,0 +1 @@
referencia

View File

@@ -0,0 +1 @@
bash

View File

@@ -1,7 +1,22 @@
{
"example-skill": {
"downloads": 0,
"skills:example-skill": {
"downloads": 1,
"pushes": 1,
"lastPushedAt": "2026-02-12T13:27:13.727Z"
},
"agents:example-agent": {
"downloads": 1,
"pushes": 1,
"lastPushedAt": "2026-02-13T02:09:58.494Z"
},
"skills:example-skill-2": {
"downloads": 1,
"pushes": 1,
"lastPushedAt": "2026-02-13T09:59:01.660Z"
},
"skills:testeo": {
"downloads": 1,
"pushes": 1,
"lastPushedAt": "2026-02-13T12:18:38.376Z"
}
}