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:
37
data/agents/example-agent.md
Normal file
37
data/agents/example-agent.md
Normal 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
0
data/claude-md/.gitkeep
Normal file
19
data/output-styles/example-style.md
Normal file
19
data/output-styles/example-style.md
Normal 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
|
||||
38
data/rules/example-rule.md
Normal file
38
data/rules/example-rule.md
Normal 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
|
||||
10
data/skills/testeo/SKILL.md
Normal file
10
data/skills/testeo/SKILL.md
Normal 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
|
||||
1
data/skills/testeo/assets/temp.tpl
Normal file
1
data/skills/testeo/assets/temp.tpl
Normal file
@@ -0,0 +1 @@
|
||||
template
|
||||
1
data/skills/testeo/references/readme.md
Normal file
1
data/skills/testeo/references/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
referencia
|
||||
1
data/skills/testeo/scripts/run.sh
Normal file
1
data/skills/testeo/scripts/run.sh
Normal file
@@ -0,0 +1 @@
|
||||
bash
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user