Skip to content

Commit 3d5c754

Browse files
authored
Merge pull request #104 from 2-Coatl/claude/analiza-do-011CUreJt9Sfhy9C1CeExCkh
feat: Completar proyecto IACT - 38/38 tareas (184 SP) + Analisis guias workflows
2 parents ab2d3d8 + e9362b5 commit 3d5c754

436 files changed

Lines changed: 119270 additions & 863 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 301 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,301 @@
1+
{
2+
"$schema": "workflow-template-mapping-schema-v1",
3+
"version": "1.0.0",
4+
"description": "Mapeo centralizado entre workflows CI/CD, templates, procedimientos y agentes SDLC",
5+
"updated": "2025-11-06",
6+
7+
"mappings": {
8+
"backend-ci": {
9+
"workflow": ".github/workflows/backend-ci.yml",
10+
"templates": [
11+
"docs/plantillas/plantilla_django_app.md",
12+
"docs/plantillas/plantilla_etl_job.md",
13+
"docs/plantillas/plantilla_tdd.md"
14+
],
15+
"procedimientos": [
16+
"docs/gobernanza/procesos/procedimientos/procedimiento_desarrollo_local.md",
17+
"docs/gobernanza/procesos/procedimientos/guia_completa_desarrollo_features.md"
18+
],
19+
"scripts": [
20+
"scripts/ci/backend_test.sh"
21+
],
22+
"checklists": [
23+
"docs/gobernanza/procesos/checklists/checklist_desarrollo.md"
24+
],
25+
"agentes": [],
26+
"triggers": ["push", "pull_request"],
27+
"paths": ["api/**", "scripts/**/*.py"],
28+
"validations": ["RNF-002", "tests", "coverage>=80", "lint"],
29+
"fase_sdlc": "development"
30+
},
31+
32+
"frontend-ci": {
33+
"workflow": ".github/workflows/frontend-ci.yml",
34+
"templates": [],
35+
"procedimientos": [
36+
"docs/gobernanza/procesos/procedimientos/procedimiento_desarrollo_local.md"
37+
],
38+
"scripts": [
39+
"scripts/ci/frontend_test.sh"
40+
],
41+
"checklists": [
42+
"docs/gobernanza/procesos/checklists/checklist_desarrollo.md"
43+
],
44+
"agentes": [],
45+
"triggers": ["push", "pull_request"],
46+
"paths": ["frontend/**"],
47+
"validations": ["tests", "lint", "build"],
48+
"fase_sdlc": "development"
49+
},
50+
51+
"test-pyramid": {
52+
"workflow": ".github/workflows/test-pyramid.yml",
53+
"templates": [
54+
"docs/plantillas/plantilla_plan_pruebas.md",
55+
"docs/plantillas/plantilla_caso_prueba.md",
56+
"docs/plantillas/plantilla_tdd.md"
57+
],
58+
"procedimientos": [
59+
"docs/gobernanza/procesos/procedimientos/procedimiento_qa.md",
60+
"docs/gobernanza/procesos/estrategia_qa.md",
61+
"docs/gobernanza/procesos/actividades_garantia_documental.md"
62+
],
63+
"scripts": [
64+
"scripts/ci/test_pyramid_check.sh"
65+
],
66+
"checklists": [
67+
"docs/gobernanza/procesos/checklists/checklist_testing.md",
68+
"docs/gobernanza/procesos/checklists/checklist_auditoria_restricciones.md"
69+
],
70+
"agentes": [
71+
"scripts/ai/agents/sdlc_testing.py"
72+
],
73+
"triggers": ["push", "pull_request"],
74+
"paths": ["tests/**"],
75+
"validations": ["60% unit", "30% integration", "10% e2e"],
76+
"fase_sdlc": "testing"
77+
},
78+
79+
"deploy": {
80+
"workflow": ".github/workflows/deploy.yml",
81+
"templates": [
82+
"docs/plantillas/plantilla_release_plan.md",
83+
"docs/plantillas/plantilla_deployment_guide.md",
84+
"docs/plantillas/plantilla_runbook.md"
85+
],
86+
"procedimientos": [
87+
"docs/gobernanza/procesos/procedimientos/procedimiento_release.md"
88+
],
89+
"scripts": [],
90+
"checklists": [],
91+
"agentes": [
92+
"scripts/ai/agents/sdlc_deployment.py"
93+
],
94+
"runbooks": [
95+
"docs/implementacion/infrastructure/runbooks/verificar_servicios.md",
96+
"docs/implementacion/infrastructure/runbooks/merge_y_limpieza_ramas.md"
97+
],
98+
"triggers": ["tag"],
99+
"paths": ["**"],
100+
"validations": ["blue-green", "health-checks", "rollback"],
101+
"fase_sdlc": "deployment"
102+
},
103+
104+
"migrations": {
105+
"workflow": ".github/workflows/migrations.yml",
106+
"templates": [
107+
"docs/plantillas/plantilla_database_design.md"
108+
],
109+
"procedimientos": [
110+
"docs/gobernanza/procesos/procedimientos/procedimiento_diseno_tecnico.md"
111+
],
112+
"scripts": [],
113+
"checklists": [],
114+
"agentes": [
115+
"scripts/ai/agents/sdlc_design.py"
116+
],
117+
"triggers": ["push", "pull_request"],
118+
"paths": ["api/**/migrations/**"],
119+
"validations": ["dry-run", "conflicts", "backwards-compatibility"],
120+
"fase_sdlc": "design"
121+
},
122+
123+
"infrastructure-ci": {
124+
"workflow": ".github/workflows/infrastructure-ci.yml",
125+
"templates": [
126+
"docs/plantillas/plantilla_setup_entorno.md"
127+
],
128+
"procedimientos": [
129+
"docs/gobernanza/procesos/procedimientos/procedimiento_instalacion_entorno.md"
130+
],
131+
"scripts": [],
132+
"checklists": [],
133+
"agentes": [],
134+
"triggers": ["push", "pull_request"],
135+
"paths": ["infrastructure/**", "provisioning/**"],
136+
"validations": ["terraform-validate", "ansible-lint"],
137+
"fase_sdlc": "infrastructure"
138+
},
139+
140+
"security-scan": {
141+
"workflow": ".github/workflows/security-scan.yml",
142+
"templates": [],
143+
"procedimientos": [
144+
"docs/gobernanza/procesos/procedimientos/procedimiento_analisis_seguridad.md"
145+
],
146+
"scripts": [
147+
"scripts/ci/security_scan.sh"
148+
],
149+
"checklists": [],
150+
"agentes": [],
151+
"triggers": ["push", "schedule"],
152+
"paths": ["**/*.py", "**/*.js"],
153+
"validations": ["bandit", "secrets", "sql-injection", "RNF-002"],
154+
"fase_sdlc": "operations"
155+
},
156+
157+
"incident-response": {
158+
"workflow": ".github/workflows/incident-response.yml",
159+
"templates": [
160+
"docs/plantillas/plantilla_troubleshooting.md"
161+
],
162+
"procedimientos": [],
163+
"scripts": [],
164+
"checklists": [],
165+
"agentes": [
166+
"scripts/ai/agents/sdlc_orchestrator.py"
167+
],
168+
"runbooks": [
169+
"docs/implementacion/infrastructure/runbooks/reprocesar_etl_fallido.md",
170+
"docs/implementacion/infrastructure/runbooks/verificar_servicios.md"
171+
],
172+
"triggers": ["workflow_dispatch", "repository_dispatch"],
173+
"paths": [],
174+
"validations": ["auto-rollback", "alertas", "post-mortem"],
175+
"fase_sdlc": "operations"
176+
}
177+
},
178+
179+
"reverse_mappings": {
180+
"by_template": {
181+
"plantilla_django_app.md": ["backend-ci"],
182+
"plantilla_etl_job.md": ["backend-ci"],
183+
"plantilla_tdd.md": ["backend-ci", "test-pyramid"],
184+
"plantilla_plan_pruebas.md": ["test-pyramid"],
185+
"plantilla_caso_prueba.md": ["test-pyramid"],
186+
"plantilla_release_plan.md": ["deploy"],
187+
"plantilla_deployment_guide.md": ["deploy"],
188+
"plantilla_runbook.md": ["deploy"],
189+
"plantilla_database_design.md": ["migrations"],
190+
"plantilla_setup_entorno.md": ["infrastructure-ci"],
191+
"plantilla_troubleshooting.md": ["incident-response"]
192+
},
193+
194+
"by_procedimiento": {
195+
"procedimiento_desarrollo_local.md": ["backend-ci", "frontend-ci"],
196+
"guia_completa_desarrollo_features.md": ["backend-ci"],
197+
"procedimiento_qa.md": ["test-pyramid"],
198+
"estrategia_qa.md": ["test-pyramid"],
199+
"actividades_garantia_documental.md": ["test-pyramid"],
200+
"procedimiento_release.md": ["deploy"],
201+
"procedimiento_diseno_tecnico.md": ["migrations"],
202+
"procedimiento_instalacion_entorno.md": ["infrastructure-ci"],
203+
"procedimiento_analisis_seguridad.md": ["security-scan"]
204+
},
205+
206+
"by_agente": {
207+
"sdlc_testing.py": ["test-pyramid"],
208+
"sdlc_deployment.py": ["deploy"],
209+
"sdlc_design.py": ["migrations"],
210+
"sdlc_orchestrator.py": ["incident-response"]
211+
},
212+
213+
"by_fase_sdlc": {
214+
"planning": [],
215+
"feasibility": [],
216+
"design": ["migrations"],
217+
"development": ["backend-ci", "frontend-ci"],
218+
"testing": ["test-pyramid"],
219+
"deployment": ["deploy"],
220+
"operations": ["security-scan", "incident-response"],
221+
"infrastructure": ["infrastructure-ci"]
222+
}
223+
},
224+
225+
"template_metadata": {
226+
"plantilla_django_app.md": {
227+
"categoria": "desarrollo",
228+
"prioridad": "alta",
229+
"genera_artefacto": "Django app en api/callcentersite/apps/",
230+
"requiere_workflow": true,
231+
"workflows_requeridos": ["backend-ci"],
232+
"fase_sdlc": "development"
233+
},
234+
"plantilla_etl_job.md": {
235+
"categoria": "desarrollo",
236+
"prioridad": "alta",
237+
"genera_artefacto": "ETL job en scripts/etl/",
238+
"requiere_workflow": true,
239+
"workflows_requeridos": ["backend-ci"],
240+
"fase_sdlc": "development"
241+
},
242+
"plantilla_tdd.md": {
243+
"categoria": "desarrollo",
244+
"prioridad": "alta",
245+
"genera_artefacto": "Tests en tests/",
246+
"requiere_workflow": true,
247+
"workflows_requeridos": ["backend-ci", "test-pyramid"],
248+
"fase_sdlc": "development"
249+
},
250+
"plantilla_plan_pruebas.md": {
251+
"categoria": "testing",
252+
"prioridad": "media",
253+
"genera_artefacto": "Test plan document",
254+
"requiere_workflow": true,
255+
"workflows_requeridos": ["test-pyramid"],
256+
"fase_sdlc": "testing"
257+
},
258+
"plantilla_release_plan.md": {
259+
"categoria": "gestion",
260+
"prioridad": "alta",
261+
"genera_artefacto": "Release plan document",
262+
"requiere_workflow": true,
263+
"workflows_requeridos": ["deploy"],
264+
"fase_sdlc": "deployment"
265+
},
266+
"plantilla_deployment_guide.md": {
267+
"categoria": "infrastructure",
268+
"prioridad": "media",
269+
"genera_artefacto": "Deployment guide document",
270+
"requiere_workflow": true,
271+
"workflows_requeridos": ["deploy"],
272+
"fase_sdlc": "deployment"
273+
},
274+
"plantilla_database_design.md": {
275+
"categoria": "diseno",
276+
"prioridad": "alta",
277+
"genera_artefacto": "Database migrations",
278+
"requiere_workflow": true,
279+
"workflows_requeridos": ["migrations"],
280+
"fase_sdlc": "design"
281+
}
282+
},
283+
284+
"workflow_generation_rules": {
285+
"cuando_usar_template": {
286+
"plantilla_django_app.md": "Al crear nueva Django app, el workflow backend-ci se ejecutara automaticamente al push",
287+
"plantilla_etl_job.md": "Al crear nuevo ETL job, el workflow backend-ci validara el codigo",
288+
"plantilla_release_plan.md": "Al crear release plan, usar workflow deploy con tag vX.Y.Z",
289+
"plantilla_database_design.md": "Al disenar DB, crear migraciones que seran validadas por workflow migrations"
290+
},
291+
292+
"automatizacion": {
293+
"backend-ci": "Se ejecuta automaticamente al push en api/** o scripts/**/*.py",
294+
"test-pyramid": "Se ejecuta automaticamente al push en tests/**",
295+
"deploy": "Se ejecuta automaticamente al crear tag vX.Y.Z",
296+
"migrations": "Se ejecuta automaticamente al push en api/**/migrations/**",
297+
"security-scan": "Se ejecuta diariamente a las 2 AM + al push",
298+
"incident-response": "Se ejecuta manualmente via workflow_dispatch"
299+
}
300+
}
301+
}

0 commit comments

Comments
 (0)