javi-forge 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ci-local/ci-local.sh +38 -10
- package/ci-local/hooks/pre-commit +10 -155
- package/ci-local/hooks/pre-push +12 -29
- package/dist/commands/ci.d.ts +33 -0
- package/dist/commands/ci.js +341 -0
- package/dist/commands/init.js +5 -0
- package/dist/index.js +39 -5
- package/dist/lib/docker.d.ts +43 -0
- package/dist/lib/docker.js +223 -0
- package/dist/ui/CI.d.ts +9 -0
- package/dist/ui/CI.js +91 -0
- package/package.json +9 -1
- package/ai-config/.skillignore +0 -15
- package/ai-config/AUTO_INVOKE.md +0 -300
- package/ai-config/agents/_TEMPLATE.md +0 -93
- package/ai-config/agents/business/api-designer.md +0 -1657
- package/ai-config/agents/business/business-analyst.md +0 -1331
- package/ai-config/agents/business/product-strategist.md +0 -206
- package/ai-config/agents/business/project-manager.md +0 -178
- package/ai-config/agents/business/requirements-analyst.md +0 -1277
- package/ai-config/agents/business/technical-writer.md +0 -1679
- package/ai-config/agents/creative/ux-designer.md +0 -205
- package/ai-config/agents/data-ai/ai-engineer.md +0 -487
- package/ai-config/agents/data-ai/analytics-engineer.md +0 -953
- package/ai-config/agents/data-ai/data-engineer.md +0 -173
- package/ai-config/agents/data-ai/data-scientist.md +0 -672
- package/ai-config/agents/data-ai/mlops-engineer.md +0 -814
- package/ai-config/agents/data-ai/prompt-engineer.md +0 -772
- package/ai-config/agents/development/angular-expert.md +0 -620
- package/ai-config/agents/development/backend-architect.md +0 -795
- package/ai-config/agents/development/database-specialist.md +0 -212
- package/ai-config/agents/development/frontend-specialist.md +0 -686
- package/ai-config/agents/development/fullstack-engineer.md +0 -668
- package/ai-config/agents/development/golang-pro.md +0 -338
- package/ai-config/agents/development/java-enterprise.md +0 -400
- package/ai-config/agents/development/javascript-pro.md +0 -422
- package/ai-config/agents/development/nextjs-pro.md +0 -474
- package/ai-config/agents/development/python-pro.md +0 -570
- package/ai-config/agents/development/react-pro.md +0 -487
- package/ai-config/agents/development/rust-pro.md +0 -246
- package/ai-config/agents/development/spring-boot-4-expert.md +0 -326
- package/ai-config/agents/development/typescript-pro.md +0 -336
- package/ai-config/agents/development/vue-specialist.md +0 -605
- package/ai-config/agents/infrastructure/cloud-architect.md +0 -472
- package/ai-config/agents/infrastructure/deployment-manager.md +0 -358
- package/ai-config/agents/infrastructure/devops-engineer.md +0 -455
- package/ai-config/agents/infrastructure/incident-responder.md +0 -519
- package/ai-config/agents/infrastructure/kubernetes-expert.md +0 -705
- package/ai-config/agents/infrastructure/monitoring-specialist.md +0 -674
- package/ai-config/agents/infrastructure/performance-engineer.md +0 -658
- package/ai-config/agents/orchestrator.md +0 -241
- package/ai-config/agents/quality/accessibility-auditor.md +0 -1204
- package/ai-config/agents/quality/code-reviewer-compact.md +0 -123
- package/ai-config/agents/quality/code-reviewer.md +0 -363
- package/ai-config/agents/quality/dependency-manager.md +0 -743
- package/ai-config/agents/quality/e2e-test-specialist.md +0 -1005
- package/ai-config/agents/quality/performance-tester.md +0 -1086
- package/ai-config/agents/quality/security-auditor.md +0 -133
- package/ai-config/agents/quality/test-engineer.md +0 -453
- package/ai-config/agents/specialists/api-designer.md +0 -87
- package/ai-config/agents/specialists/backend-architect.md +0 -73
- package/ai-config/agents/specialists/code-reviewer.md +0 -77
- package/ai-config/agents/specialists/db-optimizer.md +0 -75
- package/ai-config/agents/specialists/devops-engineer.md +0 -83
- package/ai-config/agents/specialists/documentation-writer.md +0 -78
- package/ai-config/agents/specialists/frontend-developer.md +0 -75
- package/ai-config/agents/specialists/performance-analyst.md +0 -82
- package/ai-config/agents/specialists/refactor-specialist.md +0 -74
- package/ai-config/agents/specialists/security-auditor.md +0 -74
- package/ai-config/agents/specialists/test-engineer.md +0 -81
- package/ai-config/agents/specialists/ux-consultant.md +0 -76
- package/ai-config/agents/specialized/agent-generator.md +0 -1190
- package/ai-config/agents/specialized/blockchain-developer.md +0 -149
- package/ai-config/agents/specialized/code-migrator.md +0 -892
- package/ai-config/agents/specialized/context-manager.md +0 -978
- package/ai-config/agents/specialized/documentation-writer.md +0 -1078
- package/ai-config/agents/specialized/ecommerce-expert.md +0 -1756
- package/ai-config/agents/specialized/embedded-engineer.md +0 -1714
- package/ai-config/agents/specialized/error-detective.md +0 -1034
- package/ai-config/agents/specialized/fintech-specialist.md +0 -1659
- package/ai-config/agents/specialized/freelance-project-planner-v2.md +0 -1988
- package/ai-config/agents/specialized/freelance-project-planner-v3.md +0 -2136
- package/ai-config/agents/specialized/freelance-project-planner-v4.md +0 -4503
- package/ai-config/agents/specialized/freelance-project-planner.md +0 -722
- package/ai-config/agents/specialized/game-developer.md +0 -1963
- package/ai-config/agents/specialized/healthcare-dev.md +0 -1620
- package/ai-config/agents/specialized/mobile-developer.md +0 -188
- package/ai-config/agents/specialized/parallel-plan-executor.md +0 -506
- package/ai-config/agents/specialized/plan-executor.md +0 -485
- package/ai-config/agents/specialized/solo-dev-planner-modular/00-INDEX.md +0 -485
- package/ai-config/agents/specialized/solo-dev-planner-modular/01-CORE.md +0 -3493
- package/ai-config/agents/specialized/solo-dev-planner-modular/02-SELF-CORRECTION.md +0 -778
- package/ai-config/agents/specialized/solo-dev-planner-modular/03-PROGRESSIVE-SETUP.md +0 -918
- package/ai-config/agents/specialized/solo-dev-planner-modular/04-DEPLOYMENT.md +0 -1537
- package/ai-config/agents/specialized/solo-dev-planner-modular/05-TESTING.md +0 -2633
- package/ai-config/agents/specialized/solo-dev-planner-modular/06-OPERATIONS.md +0 -5610
- package/ai-config/agents/specialized/solo-dev-planner-modular/INSTALL.md +0 -335
- package/ai-config/agents/specialized/solo-dev-planner-modular/QUICK-REFERENCE.txt +0 -215
- package/ai-config/agents/specialized/solo-dev-planner-modular/README.md +0 -260
- package/ai-config/agents/specialized/solo-dev-planner-modular/START-HERE.md +0 -379
- package/ai-config/agents/specialized/solo-dev-planner-modular/WORKFLOW-DIAGRAM.md +0 -355
- package/ai-config/agents/specialized/solo-dev-planner-modular/solo-dev-planner.md +0 -279
- package/ai-config/agents/specialized/template-writer.md +0 -347
- package/ai-config/agents/specialized/test-runner.md +0 -99
- package/ai-config/agents/specialized/vibekanban-smart-worker.md +0 -244
- package/ai-config/agents/specialized/wave-executor.md +0 -138
- package/ai-config/agents/specialized/workflow-optimizer.md +0 -1114
- package/ai-config/commands/git/changelog.md +0 -32
- package/ai-config/commands/git/ci-local.md +0 -70
- package/ai-config/commands/git/commit.md +0 -35
- package/ai-config/commands/git/fix-issue.md +0 -23
- package/ai-config/commands/git/pr-create.md +0 -42
- package/ai-config/commands/git/pr-review.md +0 -50
- package/ai-config/commands/git/worktree.md +0 -39
- package/ai-config/commands/refactoring/cleanup.md +0 -24
- package/ai-config/commands/refactoring/dead-code.md +0 -40
- package/ai-config/commands/refactoring/extract.md +0 -31
- package/ai-config/commands/testing/e2e.md +0 -30
- package/ai-config/commands/testing/tdd.md +0 -36
- package/ai-config/commands/testing/test-coverage.md +0 -30
- package/ai-config/commands/testing/test-fix.md +0 -24
- package/ai-config/commands/workflow/generate-agents-md.md +0 -85
- package/ai-config/commands/workflow/planning.md +0 -47
- package/ai-config/commands/workflows/compound.md +0 -89
- package/ai-config/commands/workflows/diagnose.md +0 -70
- package/ai-config/commands/workflows/discover.md +0 -86
- package/ai-config/commands/workflows/plan.md +0 -77
- package/ai-config/commands/workflows/review.md +0 -78
- package/ai-config/commands/workflows/work.md +0 -75
- package/ai-config/config.yaml +0 -18
- package/ai-config/hooks/_TEMPLATE.md +0 -96
- package/ai-config/hooks/block-dangerous-commands.md +0 -75
- package/ai-config/hooks/commit-guard.md +0 -90
- package/ai-config/hooks/context-loader.md +0 -73
- package/ai-config/hooks/improve-prompt.md +0 -91
- package/ai-config/hooks/learning-log.md +0 -72
- package/ai-config/hooks/model-router.md +0 -86
- package/ai-config/hooks/secret-scanner.md +0 -64
- package/ai-config/hooks/skill-validator.md +0 -102
- package/ai-config/hooks/task-artifact.md +0 -114
- package/ai-config/hooks/validate-workflow.md +0 -100
- package/ai-config/prompts/base.md +0 -71
- package/ai-config/prompts/modes/debug.md +0 -34
- package/ai-config/prompts/modes/deploy.md +0 -40
- package/ai-config/prompts/modes/research.md +0 -32
- package/ai-config/prompts/modes/review.md +0 -33
- package/ai-config/prompts/review-policy.md +0 -79
- package/ai-config/skills/_TEMPLATE.md +0 -157
- package/ai-config/skills/backend/api-gateway/SKILL.md +0 -254
- package/ai-config/skills/backend/bff-concepts/SKILL.md +0 -239
- package/ai-config/skills/backend/bff-spring/SKILL.md +0 -364
- package/ai-config/skills/backend/chi-router/SKILL.md +0 -396
- package/ai-config/skills/backend/error-handling/SKILL.md +0 -255
- package/ai-config/skills/backend/exceptions-spring/SKILL.md +0 -323
- package/ai-config/skills/backend/fastapi/SKILL.md +0 -302
- package/ai-config/skills/backend/gateway-spring/SKILL.md +0 -390
- package/ai-config/skills/backend/go-backend/SKILL.md +0 -457
- package/ai-config/skills/backend/gradle-multimodule/SKILL.md +0 -274
- package/ai-config/skills/backend/graphql-concepts/SKILL.md +0 -352
- package/ai-config/skills/backend/graphql-spring/SKILL.md +0 -398
- package/ai-config/skills/backend/grpc-concepts/SKILL.md +0 -283
- package/ai-config/skills/backend/grpc-spring/SKILL.md +0 -445
- package/ai-config/skills/backend/jwt-auth/SKILL.md +0 -412
- package/ai-config/skills/backend/notifications-concepts/SKILL.md +0 -259
- package/ai-config/skills/backend/recommendations-concepts/SKILL.md +0 -261
- package/ai-config/skills/backend/search-concepts/SKILL.md +0 -263
- package/ai-config/skills/backend/search-spring/SKILL.md +0 -375
- package/ai-config/skills/backend/spring-boot-4/SKILL.md +0 -172
- package/ai-config/skills/backend/websockets/SKILL.md +0 -532
- package/ai-config/skills/data-ai/ai-ml/SKILL.md +0 -423
- package/ai-config/skills/data-ai/analytics-concepts/SKILL.md +0 -195
- package/ai-config/skills/data-ai/analytics-spring/SKILL.md +0 -340
- package/ai-config/skills/data-ai/duckdb-analytics/SKILL.md +0 -440
- package/ai-config/skills/data-ai/langchain/SKILL.md +0 -238
- package/ai-config/skills/data-ai/mlflow/SKILL.md +0 -302
- package/ai-config/skills/data-ai/onnx-inference/SKILL.md +0 -290
- package/ai-config/skills/data-ai/powerbi/SKILL.md +0 -352
- package/ai-config/skills/data-ai/pytorch/SKILL.md +0 -274
- package/ai-config/skills/data-ai/scikit-learn/SKILL.md +0 -321
- package/ai-config/skills/data-ai/vector-db/SKILL.md +0 -301
- package/ai-config/skills/database/graph-databases/SKILL.md +0 -218
- package/ai-config/skills/database/graph-spring/SKILL.md +0 -361
- package/ai-config/skills/database/pgx-postgres/SKILL.md +0 -512
- package/ai-config/skills/database/redis-cache/SKILL.md +0 -343
- package/ai-config/skills/database/sqlite-embedded/SKILL.md +0 -388
- package/ai-config/skills/database/timescaledb/SKILL.md +0 -320
- package/ai-config/skills/docs/api-documentation/SKILL.md +0 -293
- package/ai-config/skills/docs/docs-spring/SKILL.md +0 -377
- package/ai-config/skills/docs/mustache-templates/SKILL.md +0 -190
- package/ai-config/skills/docs/technical-docs/SKILL.md +0 -447
- package/ai-config/skills/frontend/astro-ssr/SKILL.md +0 -441
- package/ai-config/skills/frontend/frontend-design/SKILL.md +0 -54
- package/ai-config/skills/frontend/frontend-web/SKILL.md +0 -368
- package/ai-config/skills/frontend/mantine-ui/SKILL.md +0 -396
- package/ai-config/skills/frontend/tanstack-query/SKILL.md +0 -439
- package/ai-config/skills/frontend/zod-validation/SKILL.md +0 -417
- package/ai-config/skills/frontend/zustand-state/SKILL.md +0 -350
- package/ai-config/skills/infrastructure/chaos-engineering/SKILL.md +0 -244
- package/ai-config/skills/infrastructure/chaos-spring/SKILL.md +0 -378
- package/ai-config/skills/infrastructure/devops-infra/SKILL.md +0 -435
- package/ai-config/skills/infrastructure/docker-containers/SKILL.md +0 -420
- package/ai-config/skills/infrastructure/kubernetes/SKILL.md +0 -456
- package/ai-config/skills/infrastructure/opentelemetry/SKILL.md +0 -546
- package/ai-config/skills/infrastructure/traefik-proxy/SKILL.md +0 -474
- package/ai-config/skills/infrastructure/woodpecker-ci/SKILL.md +0 -315
- package/ai-config/skills/mobile/ionic-capacitor/SKILL.md +0 -504
- package/ai-config/skills/mobile/mobile-ionic/SKILL.md +0 -448
- package/ai-config/skills/prompt-improver/SKILL.md +0 -125
- package/ai-config/skills/quality/ghagga-review/SKILL.md +0 -216
- package/ai-config/skills/references/hooks-patterns/SKILL.md +0 -238
- package/ai-config/skills/references/mcp-servers/SKILL.md +0 -275
- package/ai-config/skills/references/plugins-reference/SKILL.md +0 -110
- package/ai-config/skills/references/skills-reference/SKILL.md +0 -420
- package/ai-config/skills/references/subagent-templates/SKILL.md +0 -193
- package/ai-config/skills/systems-iot/modbus-protocol/SKILL.md +0 -410
- package/ai-config/skills/systems-iot/mqtt-rumqttc/SKILL.md +0 -408
- package/ai-config/skills/systems-iot/rust-systems/SKILL.md +0 -386
- package/ai-config/skills/systems-iot/tokio-async/SKILL.md +0 -324
- package/ai-config/skills/testing/playwright-e2e/SKILL.md +0 -289
- package/ai-config/skills/testing/testcontainers/SKILL.md +0 -299
- package/ai-config/skills/testing/vitest-testing/SKILL.md +0 -381
- package/ai-config/skills/workflow/ci-local-guide/SKILL.md +0 -118
- package/ai-config/skills/workflow/claude-automation-recommender/SKILL.md +0 -299
- package/ai-config/skills/workflow/claude-md-improver/SKILL.md +0 -158
- package/ai-config/skills/workflow/finishing-a-development-branch/SKILL.md +0 -117
- package/ai-config/skills/workflow/git-github/SKILL.md +0 -334
- package/ai-config/skills/workflow/git-github/references/examples.md +0 -160
- package/ai-config/skills/workflow/git-workflow/SKILL.md +0 -214
- package/ai-config/skills/workflow/ide-plugins/SKILL.md +0 -277
- package/ai-config/skills/workflow/ide-plugins-intellij/SKILL.md +0 -401
- package/ai-config/skills/workflow/obsidian-brain-workflow/SKILL.md +0 -199
- package/ai-config/skills/workflow/using-git-worktrees/SKILL.md +0 -100
- package/ai-config/skills/workflow/verification-before-completion/SKILL.md +0 -73
- package/ai-config/skills/workflow/wave-workflow/SKILL.md +0 -178
- package/schemas/agent.schema.json +0 -34
- package/schemas/ai-config.schema.json +0 -28
- package/schemas/plugin.schema.json +0 -62
- package/schemas/skill.schema.json +0 -44
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: task-artifact
|
|
3
|
-
description: Creates a structured task directory with blank artifact files at session start. Directory is organized by domain, date, and task slug.
|
|
4
|
-
event: SessionStart
|
|
5
|
-
action: execute
|
|
6
|
-
|
|
7
|
-
metadata:
|
|
8
|
-
author: project-starter-framework
|
|
9
|
-
version: "1.0"
|
|
10
|
-
updated: "2026-02"
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# Task Artifact Hook
|
|
14
|
-
|
|
15
|
-
> Scaffolds a task workspace directory at the start of each session.
|
|
16
|
-
|
|
17
|
-
## Purpose
|
|
18
|
-
|
|
19
|
-
Automatically creates a `tasks/<domain>/<YYYY-MM-DD>/<task-slug>/` directory structure
|
|
20
|
-
with blank artifact files, so every session has a consistent place to capture research,
|
|
21
|
-
plans, file changes, and verification steps.
|
|
22
|
-
|
|
23
|
-
## Evento
|
|
24
|
-
|
|
25
|
-
- **Trigger:** SessionStart
|
|
26
|
-
- **Action:** execute
|
|
27
|
-
- **Condition:** When a session begins with a clear task or feature in mind
|
|
28
|
-
|
|
29
|
-
## Domain Detection
|
|
30
|
-
|
|
31
|
-
The `<domain>` is inferred from keywords in the first user message:
|
|
32
|
-
|
|
33
|
-
| Keywords | Domain |
|
|
34
|
-
|----------|--------|
|
|
35
|
-
| `git`, `commit`, `branch`, `merge`, `rebase` | `git` |
|
|
36
|
-
| `test`, `spec`, `coverage`, `mock`, `TDD` | `testing` |
|
|
37
|
-
| `feature`, `implement`, `build`, `create`, `add` | `development` |
|
|
38
|
-
| `bug`, `fix`, `error`, `broken`, `debug` | `bugfix` |
|
|
39
|
-
| `refactor`, `clean`, `extract`, `simplify` | `refactoring` |
|
|
40
|
-
| `deploy`, `CI`, `pipeline`, `docker`, `k8s` | `devops` |
|
|
41
|
-
| `security`, `vulnerability`, `auth`, `CVE` | `security` |
|
|
42
|
-
| `docs`, `README`, `documentation`, `guide` | `docs` |
|
|
43
|
-
| *(default)* | `general` |
|
|
44
|
-
|
|
45
|
-
## Directory Structure Created
|
|
46
|
-
|
|
47
|
-
```
|
|
48
|
-
tasks/
|
|
49
|
-
└── <domain>/
|
|
50
|
-
└── <YYYY-MM-DD>/
|
|
51
|
-
└── <task-slug>/
|
|
52
|
-
├── research.md
|
|
53
|
-
├── plan.md
|
|
54
|
-
├── files-edited.md
|
|
55
|
-
└── verification.md
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
## Lógica
|
|
59
|
-
|
|
60
|
-
```
|
|
61
|
-
SI first message contains task keywords
|
|
62
|
-
ENTONCES infer domain and task-slug from message
|
|
63
|
-
CREATE tasks/<domain>/<YYYY-MM-DD>/<task-slug>/
|
|
64
|
-
CREATE research.md with ## Research header
|
|
65
|
-
CREATE plan.md with ## Plan header
|
|
66
|
-
CREATE files-edited.md with ## Files Changed header
|
|
67
|
-
CREATE verification.md with checklist
|
|
68
|
-
SINO skip (no task directory needed for questions/exploration)
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
## Implementación
|
|
72
|
-
|
|
73
|
-
### Para Claude Code
|
|
74
|
-
|
|
75
|
-
```json
|
|
76
|
-
{
|
|
77
|
-
"hooks": {
|
|
78
|
-
"SessionStart": [
|
|
79
|
-
{
|
|
80
|
-
"matcher": ".*",
|
|
81
|
-
"command": "bash .ai-config/scripts/task-artifact.sh \"$CLAUDE_SESSION_FIRST_MESSAGE\""
|
|
82
|
-
}
|
|
83
|
-
]
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### Script: .ai-config/scripts/task-artifact.sh
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
#!/bin/bash
|
|
92
|
-
# Usage: task-artifact.sh "<first message>"
|
|
93
|
-
DOMAIN=$(echo "$1" | grep -qiE "git|commit|branch|merge" && echo "git" || \
|
|
94
|
-
echo "$1" | grep -qiE "test|spec|coverage|mock|TDD" && echo "testing" || \
|
|
95
|
-
echo "$1" | grep -qiE "bug|fix|error|broken|debug" && echo "bugfix" || \
|
|
96
|
-
echo "$1" | grep -qiE "refactor|clean|extract" && echo "refactoring" || \
|
|
97
|
-
echo "$1" | grep -qiE "deploy|CI|pipeline|docker" && echo "devops" || \
|
|
98
|
-
echo "development")
|
|
99
|
-
|
|
100
|
-
DATE=$(date +%Y-%m-%d)
|
|
101
|
-
SLUG=$(echo "$1" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | cut -c1-40)
|
|
102
|
-
DIR="tasks/$DOMAIN/$DATE/$SLUG"
|
|
103
|
-
|
|
104
|
-
mkdir -p "$DIR"
|
|
105
|
-
echo -e "## Research\n\n_Add findings here_" > "$DIR/research.md"
|
|
106
|
-
echo -e "## Plan\n\n_Add steps here_" > "$DIR/plan.md"
|
|
107
|
-
echo -e "## Files Changed\n\n_Auto-populated_" > "$DIR/files-edited.md"
|
|
108
|
-
echo -e "## Verification Checklist\n\n- [ ] Tests pass\n- [ ] No regressions\n- [ ] Docs updated" > "$DIR/verification.md"
|
|
109
|
-
echo "📁 Task workspace: $DIR"
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
## Template Files
|
|
113
|
-
|
|
114
|
-
See `tasks/_TEMPLATE/` for the canonical blank file templates.
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: validate-workflow
|
|
3
|
-
description: Validates GitHub Actions workflow YAML files after writing or editing. Checks syntax and required keys.
|
|
4
|
-
event: PostToolUse
|
|
5
|
-
tools:
|
|
6
|
-
- Write
|
|
7
|
-
- Edit
|
|
8
|
-
match_pattern: "\\.github/workflows/.*\\.yml"
|
|
9
|
-
action: execute
|
|
10
|
-
metadata:
|
|
11
|
-
author: project-starter-framework
|
|
12
|
-
version: "1.0"
|
|
13
|
-
updated: "2026-02"
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Validate Workflow Hook
|
|
17
|
-
|
|
18
|
-
> Automatically validates GitHub Actions workflow files after every write or edit.
|
|
19
|
-
|
|
20
|
-
## Purpose
|
|
21
|
-
|
|
22
|
-
Catch YAML syntax errors and missing required keys in workflow files immediately after saving, before a broken workflow gets pushed to the repository.
|
|
23
|
-
|
|
24
|
-
## Checks Performed
|
|
25
|
-
|
|
26
|
-
| Check | Rule |
|
|
27
|
-
|-------|------|
|
|
28
|
-
| YAML syntax | Valid YAML parseable by Python's `yaml.safe_load` |
|
|
29
|
-
| `on:` trigger | Workflow must define at least one trigger |
|
|
30
|
-
| `jobs:` key | Workflow must define at least one job |
|
|
31
|
-
|
|
32
|
-
## Behavior
|
|
33
|
-
|
|
34
|
-
1. **Triggers** after Write or Edit on any `.github/workflows/*.yml` file
|
|
35
|
-
2. **Validates** YAML syntax using `python3 -c "import yaml,sys; yaml.safe_load(open('$FILE'))"`
|
|
36
|
-
3. **Checks** for `on:` and `jobs:` keys
|
|
37
|
-
4. **Reports** any issues with line number if available
|
|
38
|
-
5. **Suggests** local testing tools if validation passes
|
|
39
|
-
|
|
40
|
-
## Local Testing Suggestion
|
|
41
|
-
|
|
42
|
-
If validation passes, the hook suggests running the workflow locally:
|
|
43
|
-
|
|
44
|
-
- **act** — [github.com/nektos/act](https://github.com/nektos/act): `act push --container-architecture linux/amd64`
|
|
45
|
-
- **wrkflw** — lightweight alternative: `wrkflw run`
|
|
46
|
-
|
|
47
|
-
## Implementation (Claude Code JSON)
|
|
48
|
-
|
|
49
|
-
```json
|
|
50
|
-
{
|
|
51
|
-
"hooks": {
|
|
52
|
-
"PostToolUse": [
|
|
53
|
-
{
|
|
54
|
-
"matcher": "Write",
|
|
55
|
-
"hooks": [
|
|
56
|
-
{
|
|
57
|
-
"type": "command",
|
|
58
|
-
"command": "python3 -c \"\nimport sys, os, json\ntool_input = os.environ.get('TOOL_INPUT', '{}')\ntry:\n data = json.loads(tool_input)\nexcept Exception:\n sys.exit(0)\nfile_path = data.get('file_path', data.get('path', ''))\nimport re\nif not re.search(r'\\.github/workflows/.*\\.yml$', file_path):\n sys.exit(0)\nimport yaml\ntry:\n with open(file_path) as f:\n content = yaml.safe_load(f)\nexcept yaml.YAMLError as e:\n print('WORKFLOW SYNTAX ERROR: ' + str(e))\n sys.exit(1)\nexcept FileNotFoundError:\n sys.exit(0)\nwarnings = []\nif not content:\n warnings.append('Workflow file is empty')\nelse:\n if 'on' not in content and True not in content:\n warnings.append('Missing required key: on (trigger definition)')\n if 'jobs' not in content:\n warnings.append('Missing required key: jobs')\nif warnings:\n print('WORKFLOW VALIDATION WARNINGS for ' + file_path + ':')\n for w in warnings:\n print(' - ' + w)\nelse:\n print('Workflow YAML valid: ' + file_path)\n print('Tip: Test locally with:')\n print(' act push --container-architecture linux/amd64')\n print(' # or: wrkflw run')\nsys.exit(0)\n\""
|
|
59
|
-
}
|
|
60
|
-
]
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
"matcher": "Edit",
|
|
64
|
-
"hooks": [
|
|
65
|
-
{
|
|
66
|
-
"type": "command",
|
|
67
|
-
"command": "python3 -c \"\nimport sys, os, json\ntool_input = os.environ.get('TOOL_INPUT', '{}')\ntry:\n data = json.loads(tool_input)\nexcept Exception:\n sys.exit(0)\nfile_path = data.get('file_path', data.get('path', ''))\nimport re\nif not re.search(r'\\.github/workflows/.*\\.yml$', file_path):\n sys.exit(0)\nimport yaml\ntry:\n with open(file_path) as f:\n content = yaml.safe_load(f)\nexcept yaml.YAMLError as e:\n print('WORKFLOW SYNTAX ERROR: ' + str(e))\n sys.exit(1)\nexcept FileNotFoundError:\n sys.exit(0)\nwarnings = []\nif not content:\n warnings.append('Workflow file is empty')\nelse:\n if 'on' not in content and True not in content:\n warnings.append('Missing required key: on (trigger definition)')\n if 'jobs' not in content:\n warnings.append('Missing required key: jobs')\nif warnings:\n print('WORKFLOW VALIDATION WARNINGS for ' + file_path + ':')\n for w in warnings:\n print(' - ' + w)\nelse:\n print('Workflow YAML valid: ' + file_path)\n print('Tip: Test locally with: act push --container-architecture linux/amd64')\nsys.exit(0)\n\""
|
|
68
|
-
}
|
|
69
|
-
]
|
|
70
|
-
}
|
|
71
|
-
]
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
## Examples
|
|
77
|
-
|
|
78
|
-
### ✅ Valid Workflow
|
|
79
|
-
```yaml
|
|
80
|
-
name: CI
|
|
81
|
-
on: [push, pull_request]
|
|
82
|
-
jobs:
|
|
83
|
-
test:
|
|
84
|
-
runs-on: ubuntu-latest
|
|
85
|
-
steps:
|
|
86
|
-
- uses: actions/checkout@v4
|
|
87
|
-
```
|
|
88
|
-
→ Output: `Workflow YAML valid: .github/workflows/ci.yml`
|
|
89
|
-
|
|
90
|
-
### ❌ Invalid — Missing `jobs:`
|
|
91
|
-
```yaml
|
|
92
|
-
name: CI
|
|
93
|
-
on: [push]
|
|
94
|
-
# jobs: missing!
|
|
95
|
-
```
|
|
96
|
-
→ Output: `WORKFLOW VALIDATION WARNINGS: Missing required key: jobs`
|
|
97
|
-
|
|
98
|
-
## Notes
|
|
99
|
-
|
|
100
|
-
For local testing, install `act`: `brew install act` (macOS) or `apt install act` (Ubuntu via snap). See [nektos/act](https://github.com/nektos/act) for full docs.
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
# Base System Prompt
|
|
2
|
-
|
|
3
|
-
> Prompt base para cualquier AI CLI en este proyecto
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Contexto del Proyecto
|
|
8
|
-
|
|
9
|
-
- **Nombre:** [NOMBRE_PROYECTO]
|
|
10
|
-
- **Stack:** [STACK]
|
|
11
|
-
- **Metodología:** [VibeKanban/Kanban/Scrum/Libre]
|
|
12
|
-
|
|
13
|
-
## Reglas Críticas
|
|
14
|
-
|
|
15
|
-
### NO hacer nunca
|
|
16
|
-
|
|
17
|
-
1. **NO agregar atribuciones a IA** en código, commits, PRs o docs
|
|
18
|
-
- Nunca: `Co-authored-by: Claude/GPT/AI`
|
|
19
|
-
- Nunca: `Made by AI`, `Generated by Claude`
|
|
20
|
-
- Nunca: `@anthropic.com`, `@openai.com`
|
|
21
|
-
|
|
22
|
-
2. **NO ejecutar comandos destructivos** sin confirmación
|
|
23
|
-
- Nunca: `rm -rf`, `drop database`, `truncate`
|
|
24
|
-
- Siempre pedir confirmación para operaciones irreversibles
|
|
25
|
-
|
|
26
|
-
3. **NO commitear archivos sensibles**
|
|
27
|
-
- Nunca: `.env`, credenciales, secrets
|
|
28
|
-
- Verificar `.gitignore` antes de commit
|
|
29
|
-
|
|
30
|
-
### SIEMPRE hacer
|
|
31
|
-
|
|
32
|
-
1. **Leer antes de modificar**
|
|
33
|
-
- Siempre leer archivos antes de editarlos
|
|
34
|
-
- Entender contexto antes de cambiar
|
|
35
|
-
|
|
36
|
-
2. **Validar antes de push**
|
|
37
|
-
- Ejecutar CI-Local: `./.ci-local/ci-local.sh quick`
|
|
38
|
-
- Verificar que tests pasen
|
|
39
|
-
|
|
40
|
-
3. **Seguir convenciones del proyecto**
|
|
41
|
-
- Conventional commits: `feat(scope): message`
|
|
42
|
-
- Branching: `feature/t-xxx-description`
|
|
43
|
-
|
|
44
|
-
## Workflow
|
|
45
|
-
|
|
46
|
-
```
|
|
47
|
-
1. Leer contexto del proyecto (si existe .project/Memory/)
|
|
48
|
-
2. Trabajar en tarea
|
|
49
|
-
3. Validar con CI-Local
|
|
50
|
-
4. Commit + Push
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
## Archivos de Referencia
|
|
54
|
-
|
|
55
|
-
| Archivo | Propósito |
|
|
56
|
-
|---------|-----------|
|
|
57
|
-
| `CLAUDE.md` | Instrucciones especificas |
|
|
58
|
-
| `.project/Memory/CONTEXT.md` | Estado del proyecto (si VibeKanban) |
|
|
59
|
-
| `.project/Memory/DECISIONS.md` | ADRs (si VibeKanban) |
|
|
60
|
-
| `.project/Memory/WAVES.md` | Oleadas de trabajo (si VibeKanban) |
|
|
61
|
-
|
|
62
|
-
## Comandos Frecuentes
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
# CI Local
|
|
66
|
-
./.ci-local/ci-local.sh quick # Validacion rapida
|
|
67
|
-
./.ci-local/ci-local.sh full # CI completo
|
|
68
|
-
|
|
69
|
-
# Git
|
|
70
|
-
git checkout feature/descripcion # Cambiar a feature branch
|
|
71
|
-
```
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# Debug Mode
|
|
2
|
-
|
|
3
|
-
> Activar con: "modo debug" o "estoy debugueando un bug"
|
|
4
|
-
|
|
5
|
-
Estás diagnosticando y corrigiendo un bug. Sé sistemático y metódico.
|
|
6
|
-
|
|
7
|
-
## Enfoque
|
|
8
|
-
- Reproduce el problema primero. Confirma que podés triggerear el bug consistentemente.
|
|
9
|
-
- Recopila información: mensajes de error, stack traces, logs, datos de request/response.
|
|
10
|
-
- Formula una hipótesis antes de cambiar código. Identifica la causa raíz más probable.
|
|
11
|
-
- Verifica la hipótesis con logging, breakpoints o tests dirigidos.
|
|
12
|
-
- Corrige la causa raíz, no el síntoma. Evitá parches provisorios.
|
|
13
|
-
|
|
14
|
-
## Pasos de Diagnóstico
|
|
15
|
-
1. Lee el mensaje de error y stack trace cuidadosamente. Identifica la línea que falla.
|
|
16
|
-
2. Revisá cambios recientes: `git log --oneline -10` y `git diff HEAD~3`.
|
|
17
|
-
3. Buscá la lógica relacionada en el codebase con grep.
|
|
18
|
-
4. Agregá logging puntual en los límites (input, output, paths de error).
|
|
19
|
-
5. Simplificá el caso de reproducción al mínimo que lo dispara.
|
|
20
|
-
6. Verificá dependencias externas: estado de base de datos, respuestas de API, valores de config.
|
|
21
|
-
|
|
22
|
-
## Validación del Fix
|
|
23
|
-
- Escribí un test que reproduzca el bug ANTES de escribir el fix.
|
|
24
|
-
- Verificá que el fix resuelve el caso de reproducción original.
|
|
25
|
-
- Corré el suite completo de tests para detectar regresiones.
|
|
26
|
-
- Revisá paths de código relacionados por la misma clase de bug.
|
|
27
|
-
- Documentá la causa raíz en el mensaje de commit.
|
|
28
|
-
|
|
29
|
-
## Evitar
|
|
30
|
-
- No cambiar múltiples cosas a la vez. Aislá variables.
|
|
31
|
-
- No agregar workarounds sin entender la causa raíz.
|
|
32
|
-
- No remover error handling para que pasen los tests.
|
|
33
|
-
- No asumir que el bug está en una dependencia sin evidencia.
|
|
34
|
-
- No omitir el test de regresión para el bug corregido.
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# Deploy Mode
|
|
2
|
-
|
|
3
|
-
> Activar con: "voy a deployar" o "modo deploy"
|
|
4
|
-
|
|
5
|
-
Estás preparando o ejecutando un deployment. Priorizá seguridad y reversibilidad.
|
|
6
|
-
|
|
7
|
-
## Checklist Pre-Deploy
|
|
8
|
-
- Todos los checks de CI pasan en el branch de deployment.
|
|
9
|
-
- Las migraciones de base de datos son backward-compatible con la versión en producción.
|
|
10
|
-
- Las variables de entorno están configuradas en el ambiente destino antes del deploy.
|
|
11
|
-
- Los feature flags están configurados para features parcialmente lanzados.
|
|
12
|
-
- El changelog o release notes están actualizados.
|
|
13
|
-
- Hay un plan de rollback documentado y listo.
|
|
14
|
-
|
|
15
|
-
## Pasos de Deployment
|
|
16
|
-
1. Verificá que el artefacto de build corresponde al commit testeado (SHA o tag).
|
|
17
|
-
2. Corré migraciones de base de datos ANTES de deployar la nueva versión de la app.
|
|
18
|
-
3. Deploy a staging primero. Smoke test de los paths críticos.
|
|
19
|
-
4. Deploy a producción con estrategia rolling o blue-green.
|
|
20
|
-
5. Monitoreá error rates, latencia y health checks por 15 minutos post-deploy.
|
|
21
|
-
6. Confirmá éxito en el canal del equipo. Taggea el release en git.
|
|
22
|
-
|
|
23
|
-
## Criterios de Rollback
|
|
24
|
-
- Error rate supera 2x el baseline pre-deploy.
|
|
25
|
-
- Latencia P99 supera 3x el baseline pre-deploy.
|
|
26
|
-
- Health check failures en más de una instancia.
|
|
27
|
-
- Cualquier corrupción o violación de integridad de datos.
|
|
28
|
-
- Issues críticos reportados por usuarios dentro de la ventana de deploy.
|
|
29
|
-
|
|
30
|
-
## Post-Deploy
|
|
31
|
-
- Cerrar issues relacionados y actualizar el project board.
|
|
32
|
-
- Monitorear Sentry y dashboards de logging para nuevos patrones de error.
|
|
33
|
-
- Notificar a stakeholders del deployment completado.
|
|
34
|
-
- Programar post-mortem si el deploy tuvo problemas.
|
|
35
|
-
|
|
36
|
-
## Evitar
|
|
37
|
-
- No deployar los viernes ni antes de feriados sin aprobación explícita.
|
|
38
|
-
- No saltear staging para "cambios pequeños". Todo pasa por staging.
|
|
39
|
-
- No correr migraciones destructivas durante horario pico.
|
|
40
|
-
- No deployar múltiples cambios no relacionados en un solo release.
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# Research Mode
|
|
2
|
-
|
|
3
|
-
> Activar con: "investigá opciones para" o "modo research"
|
|
4
|
-
|
|
5
|
-
Estás explorando opciones, evaluando herramientas o investigando preguntas técnicas.
|
|
6
|
-
|
|
7
|
-
## Enfoque
|
|
8
|
-
- Definí claramente la pregunta o decisión antes de investigar.
|
|
9
|
-
- Recopilá información de múltiples fuentes: docs, código fuente, benchmarks, posts de la comunidad.
|
|
10
|
-
- Compará al menos dos alternativas para cualquier decisión de herramienta o librería.
|
|
11
|
-
- Documentá hallazgos con pros, contras y una recomendación.
|
|
12
|
-
- Acotá el tiempo de investigación para evitar parálisis de análisis.
|
|
13
|
-
|
|
14
|
-
## Criterios de Evaluación
|
|
15
|
-
- Estado de mantenimiento: último commit, cadencia de releases, issues abiertos vs cerrados.
|
|
16
|
-
- Adopción de la comunidad: descargas, GitHub stars, presencia en Stack Overflow.
|
|
17
|
-
- Calidad de documentación: guía de inicio, referencia de API, ejemplos.
|
|
18
|
-
- Performance: benchmarks, uso de memoria, tiempo de startup si es relevante.
|
|
19
|
-
- Compatibilidad: funciona con el stack existente, compatibilidad de licencia.
|
|
20
|
-
- Path de migración: esfuerzo para adoptar, esfuerzo para migrar si es necesario.
|
|
21
|
-
|
|
22
|
-
## Formato de Output
|
|
23
|
-
- Resumí hallazgos en una tabla de comparación estructurada.
|
|
24
|
-
- Declarar suposiciones y restricciones que influyeron en la evaluación.
|
|
25
|
-
- Proveer una recomendación clara con fundamento.
|
|
26
|
-
- Incluir links a fuentes para referencia futura.
|
|
27
|
-
|
|
28
|
-
## Evitar
|
|
29
|
-
- No recomendar una herramienta solo por popularidad.
|
|
30
|
-
- No pasar más de 30 minutos en una pregunta de investigación sin hacer check-in.
|
|
31
|
-
- No tomar decisiones irreversibles basadas en investigación incompleta.
|
|
32
|
-
- No introducir herramientas nuevas cuando las existentes resuelven el problema adecuadamente.
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# Code Review Mode
|
|
2
|
-
|
|
3
|
-
> Activar con: "revisá este código" o "modo review"
|
|
4
|
-
|
|
5
|
-
Estás revisando código por correctitud, seguridad y mantenibilidad.
|
|
6
|
-
|
|
7
|
-
## Enfoque
|
|
8
|
-
- Leé la descripción del PR y el issue vinculado primero para entender la intención.
|
|
9
|
-
- Revisá el diff completo antes de comentar. Entendé el cambio en su conjunto.
|
|
10
|
-
- Enfocate en correctitud lógica, edge cases y seguridad antes que estilo.
|
|
11
|
-
- Verificá que los tests cubren el comportamiento cambiado, no solo el happy path.
|
|
12
|
-
- Verificá el error handling: ¿qué pasa cuando los inputs son inválidos o los servicios fallan?
|
|
13
|
-
|
|
14
|
-
## Qué Verificar
|
|
15
|
-
- Validación de input en los límites del sistema (endpoints de API, form handlers).
|
|
16
|
-
- SQL injection, XSS y otras vulnerabilidades de inyección.
|
|
17
|
-
- Queries N+1, índices faltantes, result sets no acotados.
|
|
18
|
-
- Race conditions en código concurrente o async.
|
|
19
|
-
- Uso correcto de transacciones para mutaciones multi-paso.
|
|
20
|
-
- Secrets o credenciales incluidos accidentalmente en el diff.
|
|
21
|
-
- Breaking changes en APIs públicas o interfaces compartidas.
|
|
22
|
-
|
|
23
|
-
## Estilo de Comentarios
|
|
24
|
-
- Prefijá con intención: `blocker:`, `suggestion:`, `question:`, `nit:`.
|
|
25
|
-
- Solo comentarios `blocker:` deben impedir la aprobación.
|
|
26
|
-
- Sugerí alternativas concretas, no solo "esto podría ser mejor".
|
|
27
|
-
- Reconocé buenos patrones e implementaciones limpias.
|
|
28
|
-
|
|
29
|
-
## Evitar
|
|
30
|
-
- No bikeshedear sobre formateo si hay un auto-formatter configurado.
|
|
31
|
-
- No pedir cambios fuera del scope del PR.
|
|
32
|
-
- No bloquear PRs por preferencias de estilo que no están en las reglas del proyecto.
|
|
33
|
-
- No aprobar sin leer el diff completo.
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
# Code Review Policy
|
|
2
|
-
|
|
3
|
-
Guidelines for AI agents conducting code reviews. Apply these consistently across all PRs.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Naming Conventions
|
|
8
|
-
|
|
9
|
-
- Use clear, descriptive names that reveal intent — no abbreviations unless universally known (`url`, `id`, `db` are fine; `mgr`, `tmp`, `cb` are not).
|
|
10
|
-
- Booleans: prefer `is`, `has`, `can`, `should` prefixes (`isLoading`, `hasPermission`).
|
|
11
|
-
- Functions: use verbs (`fetchUser`, `calculateTotal`); avoid nouns (`userData`, `total`).
|
|
12
|
-
- Follow language conventions: `camelCase` for JS/TS/Go, `snake_case` for Python/Rust, `PascalCase` for types/classes everywhere.
|
|
13
|
-
- Constants: `UPPER_SNAKE_CASE` for true constants; regular naming for `const` variables that aren't fixed values.
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
## Error Handling
|
|
18
|
-
|
|
19
|
-
- Every error must be explicitly handled — no silent `catch` blocks, no empty `except`.
|
|
20
|
-
- Log errors with enough context to reproduce: include IDs, input values, stack traces.
|
|
21
|
-
- User-facing error messages must be clear and actionable; never expose internal stack traces or system paths.
|
|
22
|
-
- Distinguish between recoverable errors (return/log) and fatal errors (fail fast).
|
|
23
|
-
- For async code: handle rejected promises; never swallow errors with bare `catch () {}`.
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## Security
|
|
28
|
-
|
|
29
|
-
- No hardcoded secrets, tokens, passwords, or API keys — use environment variables.
|
|
30
|
-
- Validate and sanitize all external inputs (API params, form fields, file uploads).
|
|
31
|
-
- Check for injection vulnerabilities: SQL injection, XSS, command injection.
|
|
32
|
-
- Apply least privilege: services, DB users, and IAM roles should have only what they need.
|
|
33
|
-
- Avoid exposing sensitive data in logs, error messages, or API responses.
|
|
34
|
-
- Verify authentication/authorization checks on every protected endpoint.
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
## Performance
|
|
39
|
-
|
|
40
|
-
- Avoid N+1 queries — use batch fetches, joins, or `include`/`preload` where appropriate.
|
|
41
|
-
- Avoid unnecessary loops inside loops; prefer set operations or indexed lookups.
|
|
42
|
-
- Prefer lazy loading for heavy resources not needed at startup.
|
|
43
|
-
- Cache expensive operations with a clear invalidation strategy.
|
|
44
|
-
- Flag unbounded queries — always paginate or limit result sets from the database.
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## Test Coverage
|
|
49
|
-
|
|
50
|
-
- New features must include unit tests covering happy path and key edge cases.
|
|
51
|
-
- Bug fixes must include a regression test that would have caught the original bug.
|
|
52
|
-
- Target ≥ 80% line coverage; don't game it with trivial tests.
|
|
53
|
-
- Tests must be deterministic — no flaky tests, no `sleep` for timing, no hardcoded dates.
|
|
54
|
-
- Test the behavior, not the implementation — avoid over-mocking internal details.
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
## Code Smells
|
|
59
|
-
|
|
60
|
-
Flag the following (don't block unless egregious, but note them):
|
|
61
|
-
|
|
62
|
-
| Smell | Threshold |
|
|
63
|
-
|-------|-----------|
|
|
64
|
-
| Duplicate code (DRY violation) | 3+ repeated lines without extraction |
|
|
65
|
-
| Long functions | > 50 lines |
|
|
66
|
-
| Deep nesting | > 3 levels of indentation |
|
|
67
|
-
| Magic numbers | Unexplained literals (except 0, 1, -1) |
|
|
68
|
-
| God class / god function | Does too many unrelated things |
|
|
69
|
-
| Dead code | Unreachable branches, unused imports, commented-out blocks |
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
## PR Conventions
|
|
74
|
-
|
|
75
|
-
- Title must follow Conventional Commits: `type(scope): description` (e.g., `fix(auth): handle expired token refresh`).
|
|
76
|
-
- Description must explain **WHY** the change was made, not just what changed — that's what the diff is for.
|
|
77
|
-
- Link related issues with `Closes #123` or `Refs #456`.
|
|
78
|
-
- Each PR should be a single logical change — split unrelated fixes into separate PRs.
|
|
79
|
-
- Breaking changes must be flagged with `BREAKING CHANGE:` in the commit footer and explained in the PR description.
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
# =============================================================================
|
|
3
|
-
# SKILL TEMPLATE (Gentleman-Skills Compatible)
|
|
4
|
-
# =============================================================================
|
|
5
|
-
# Formato compatible con: https://github.com/Gentleman-Programming/Gentleman-Skills
|
|
6
|
-
#
|
|
7
|
-
# ESTRUCTURA DE CARPETA:
|
|
8
|
-
# .ai-config/skills/{category}/{skill-name}/
|
|
9
|
-
# └── SKILL.md ← este archivo
|
|
10
|
-
# └── assets/ ← opcional: templates, schemas, ejemplos
|
|
11
|
-
# └── references/ ← opcional: links a docs locales
|
|
12
|
-
# =============================================================================
|
|
13
|
-
|
|
14
|
-
name: mi-skill
|
|
15
|
-
description: >
|
|
16
|
-
Descripción breve del skill.
|
|
17
|
-
Trigger: Contexto que activa este skill (ej: "trabajando con React")
|
|
18
|
-
|
|
19
|
-
metadata:
|
|
20
|
-
author: tu-usuario-github
|
|
21
|
-
version: "1.0"
|
|
22
|
-
tags: [frontend, backend, testing]
|
|
23
|
-
language: typescript # typescript | python | go | rust | java
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
# [Nombre del Skill]
|
|
27
|
-
|
|
28
|
-
> [Descripción de una línea de lo que hace este skill]
|
|
29
|
-
|
|
30
|
-
## When to Use
|
|
31
|
-
|
|
32
|
-
Usar este skill cuando:
|
|
33
|
-
|
|
34
|
-
- [ ] Condición 1 (ej: "Editando archivos .tsx")
|
|
35
|
-
- [ ] Condición 2 (ej: "Creando componentes React")
|
|
36
|
-
- [ ] Condición 3 (ej: "Implementando estado con hooks")
|
|
37
|
-
|
|
38
|
-
## Critical Patterns
|
|
39
|
-
|
|
40
|
-
### Pattern 1: [Nombre del patrón]
|
|
41
|
-
|
|
42
|
-
**Por qué:** [Explicación de por qué este patrón es importante]
|
|
43
|
-
|
|
44
|
-
```typescript
|
|
45
|
-
// ✅ Correcto
|
|
46
|
-
[código ejemplo correcto]
|
|
47
|
-
|
|
48
|
-
// ❌ Incorrecto
|
|
49
|
-
[código ejemplo incorrecto]
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### Pattern 2: [Nombre del patrón]
|
|
53
|
-
|
|
54
|
-
**Por qué:** [Explicación]
|
|
55
|
-
|
|
56
|
-
```typescript
|
|
57
|
-
// ✅ Correcto
|
|
58
|
-
[código]
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
### Pattern 3: [Nombre del patrón]
|
|
62
|
-
|
|
63
|
-
**Por qué:** [Explicación]
|
|
64
|
-
|
|
65
|
-
```typescript
|
|
66
|
-
// ✅ Correcto
|
|
67
|
-
[código]
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## Code Examples
|
|
71
|
-
|
|
72
|
-
### Example 1: [Título descriptivo]
|
|
73
|
-
|
|
74
|
-
```typescript
|
|
75
|
-
// Ejemplo completo y funcional
|
|
76
|
-
// Con comentarios explicativos
|
|
77
|
-
|
|
78
|
-
[código completo]
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
### Example 2: [Título descriptivo]
|
|
82
|
-
|
|
83
|
-
```typescript
|
|
84
|
-
[código completo]
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### Example 3: [Título descriptivo]
|
|
88
|
-
|
|
89
|
-
```typescript
|
|
90
|
-
[código completo]
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
## Anti-Patterns
|
|
94
|
-
|
|
95
|
-
### ❌ Anti-Pattern 1: [Nombre]
|
|
96
|
-
|
|
97
|
-
**Problema:** [Por qué es malo]
|
|
98
|
-
|
|
99
|
-
```typescript
|
|
100
|
-
// ❌ No hacer esto
|
|
101
|
-
[código malo]
|
|
102
|
-
|
|
103
|
-
// ✅ Hacer esto en su lugar
|
|
104
|
-
[código bueno]
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
### ❌ Anti-Pattern 2: [Nombre]
|
|
108
|
-
|
|
109
|
-
**Problema:** [Por qué es malo]
|
|
110
|
-
|
|
111
|
-
```typescript
|
|
112
|
-
// ❌ Evitar
|
|
113
|
-
[código malo]
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
## Quick Reference
|
|
117
|
-
|
|
118
|
-
| Tarea | Snippet |
|
|
119
|
-
|-------|---------|
|
|
120
|
-
| [Tarea 1] | `[código corto]` |
|
|
121
|
-
| [Tarea 2] | `[código corto]` |
|
|
122
|
-
| [Tarea 3] | `[código corto]` |
|
|
123
|
-
|
|
124
|
-
## Resources
|
|
125
|
-
|
|
126
|
-
- [Documentación Oficial](URL)
|
|
127
|
-
- [Guía de Mejores Prácticas](URL)
|
|
128
|
-
- [Repositorio de Ejemplos](URL)
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
|
|
132
|
-
## Related Skills
|
|
133
|
-
|
|
134
|
-
- `related-skill-1`: Descripción breve de cuándo usar
|
|
135
|
-
- `related-skill-2`: Descripción breve de cuándo usar
|
|
136
|
-
- `related-skill-3`: Descripción breve de cuándo usar
|
|
137
|
-
|
|
138
|
-
---
|
|
139
|
-
|
|
140
|
-
## Changelog
|
|
141
|
-
|
|
142
|
-
- **1.0** - Versión inicial
|
|
143
|
-
|
|
144
|
-
---
|
|
145
|
-
|
|
146
|
-
## Progressive Disclosure Pattern (Optional)
|
|
147
|
-
|
|
148
|
-
For complex skills, split content into references/:
|
|
149
|
-
```
|
|
150
|
-
skills/my-skill/
|
|
151
|
-
├── SKILL.md # Core logic only (~150 lines max)
|
|
152
|
-
└── references/
|
|
153
|
-
├── examples.md # Concrete examples (loaded on demand)
|
|
154
|
-
└── patterns.md # Advanced patterns (loaded on demand)
|
|
155
|
-
```
|
|
156
|
-
In SKILL.md, reference them with:
|
|
157
|
-
> For examples, see [references/examples.md](references/examples.md)
|