@tacuchi/agent-workflow-cli 11.0.0 → 12.0.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/README.md +51 -95
- package/dist/application/artifacts-service.d.ts +3 -12
- package/dist/application/artifacts-service.d.ts.map +1 -1
- package/dist/application/artifacts-service.js +18 -19
- package/dist/application/artifacts-service.js.map +1 -1
- package/dist/application/branch-resolver.d.ts +16 -0
- package/dist/application/branch-resolver.d.ts.map +1 -0
- package/dist/application/branch-resolver.js +24 -0
- package/dist/application/branch-resolver.js.map +1 -0
- package/dist/application/check-branch-service.d.ts +0 -2
- package/dist/application/check-branch-service.d.ts.map +1 -1
- package/dist/application/check-branch-service.js +5 -40
- package/dist/application/check-branch-service.js.map +1 -1
- package/dist/application/checkpoint/markdown.d.ts.map +1 -1
- package/dist/application/checkpoint/markdown.js +1 -16
- package/dist/application/checkpoint/markdown.js.map +1 -1
- package/dist/application/checkpoint/state-reader.d.ts +1 -3
- package/dist/application/checkpoint/state-reader.d.ts.map +1 -1
- package/dist/application/checkpoint/state-reader.js +10 -31
- package/dist/application/checkpoint/state-reader.js.map +1 -1
- package/dist/application/checkpoint-service.d.ts +12 -14
- package/dist/application/checkpoint-service.d.ts.map +1 -1
- package/dist/application/checkpoint-service.js +36 -61
- package/dist/application/checkpoint-service.js.map +1 -1
- package/dist/application/checkpoint-write-service.d.ts +0 -2
- package/dist/application/checkpoint-write-service.d.ts.map +1 -1
- package/dist/application/checkpoint-write-service.js +5 -6
- package/dist/application/checkpoint-write-service.js.map +1 -1
- package/dist/application/history-update-service.js +3 -1
- package/dist/application/history-update-service.js.map +1 -1
- package/dist/application/hook-branch-check.d.ts.map +1 -1
- package/dist/application/hook-branch-check.js +5 -34
- package/dist/application/hook-branch-check.js.map +1 -1
- package/dist/application/hook-git-commit-advisor.d.ts.map +1 -1
- package/dist/application/hook-git-commit-advisor.js +18 -23
- package/dist/application/hook-git-commit-advisor.js.map +1 -1
- package/dist/application/markdown.d.ts.map +1 -1
- package/dist/application/markdown.js +0 -4
- package/dist/application/markdown.js.map +1 -1
- package/dist/application/parsers/project-block.d.ts +0 -8
- package/dist/application/parsers/project-block.d.ts.map +1 -1
- package/dist/application/parsers/project-block.js +13 -52
- package/dist/application/parsers/project-block.js.map +1 -1
- package/dist/application/paths-service.d.ts +7 -8
- package/dist/application/paths-service.d.ts.map +1 -1
- package/dist/application/paths-service.js +12 -8
- package/dist/application/paths-service.js.map +1 -1
- package/dist/application/project-md-upsert-service.d.ts +3 -11
- package/dist/application/project-md-upsert-service.d.ts.map +1 -1
- package/dist/application/project-md-upsert-service.js +6 -56
- package/dist/application/project-md-upsert-service.js.map +1 -1
- package/dist/application/project-tab-data.d.ts +20 -34
- package/dist/application/project-tab-data.d.ts.map +1 -1
- package/dist/application/project-tab-data.js +41 -101
- package/dist/application/project-tab-data.js.map +1 -1
- package/dist/application/release-data/artifacts.d.ts +0 -2
- package/dist/application/release-data/artifacts.d.ts.map +1 -1
- package/dist/application/release-data/artifacts.js +22 -12
- package/dist/application/release-data/artifacts.js.map +1 -1
- package/dist/application/release-data/sessions.d.ts +0 -2
- package/dist/application/release-data/sessions.d.ts.map +1 -1
- package/dist/application/release-data/sessions.js +36 -27
- package/dist/application/release-data/sessions.js.map +1 -1
- package/dist/application/release-data-service.d.ts +0 -3
- package/dist/application/release-data-service.d.ts.map +1 -1
- package/dist/application/release-data-service.js +3 -21
- package/dist/application/release-data-service.js.map +1 -1
- package/dist/application/render/history-row.d.ts +1 -9
- package/dist/application/render/history-row.d.ts.map +1 -1
- package/dist/application/render/history-row.js +3 -20
- package/dist/application/render/history-row.js.map +1 -1
- package/dist/application/render/project-block.d.ts +1 -3
- package/dist/application/render/project-block.d.ts.map +1 -1
- package/dist/application/render/project-block.js +4 -27
- package/dist/application/render/project-block.js.map +1 -1
- package/dist/application/self/doctor-self.d.ts.map +1 -1
- package/dist/application/self/doctor-self.js +15 -8
- package/dist/application/self/doctor-self.js.map +1 -1
- package/dist/application/self/install-hooks.d.ts +1 -1
- package/dist/application/self/install-hooks.d.ts.map +1 -1
- package/dist/application/self/install-hooks.js +3 -2
- package/dist/application/self/install-hooks.js.map +1 -1
- package/dist/application/self/install-skill.d.ts +9 -3
- package/dist/application/self/install-skill.d.ts.map +1 -1
- package/dist/application/self/install-skill.js +16 -16
- package/dist/application/self/install-skill.js.map +1 -1
- package/dist/application/self/uninstall-skill.js +14 -12
- package/dist/application/self/uninstall-skill.js.map +1 -1
- package/dist/application/self/uninstall.js +14 -12
- package/dist/application/self/uninstall.js.map +1 -1
- package/dist/application/session-artifacts.d.ts +7 -6
- package/dist/application/session-artifacts.d.ts.map +1 -1
- package/dist/application/session-artifacts.js +10 -15
- package/dist/application/session-artifacts.js.map +1 -1
- package/dist/application/session-close-service.d.ts +5 -22
- package/dist/application/session-close-service.d.ts.map +1 -1
- package/dist/application/session-close-service.js +20 -143
- package/dist/application/session-close-service.js.map +1 -1
- package/dist/application/session-create-service.d.ts +9 -29
- package/dist/application/session-create-service.d.ts.map +1 -1
- package/dist/application/session-create-service.js +44 -288
- package/dist/application/session-create-service.js.map +1 -1
- package/dist/application/session-resolver.d.ts +4 -25
- package/dist/application/session-resolver.d.ts.map +1 -1
- package/dist/application/session-resolver.js +33 -149
- package/dist/application/session-resolver.js.map +1 -1
- package/dist/application/session-resume-service.d.ts +3 -4
- package/dist/application/session-resume-service.d.ts.map +1 -1
- package/dist/application/session-resume-service.js +8 -26
- package/dist/application/session-resume-service.js.map +1 -1
- package/dist/application/sessions-service.d.ts +2 -3
- package/dist/application/sessions-service.d.ts.map +1 -1
- package/dist/application/sessions-service.js +9 -26
- package/dist/application/sessions-service.js.map +1 -1
- package/dist/application/skill-index-service.d.ts +0 -2
- package/dist/application/skill-index-service.d.ts.map +1 -1
- package/dist/application/skill-index-service.js +0 -1
- package/dist/application/skill-index-service.js.map +1 -1
- package/dist/application/skills-resolver-service.d.ts +22 -0
- package/dist/application/skills-resolver-service.d.ts.map +1 -0
- package/dist/application/skills-resolver-service.js +71 -0
- package/dist/application/skills-resolver-service.js.map +1 -0
- package/dist/application/sources-service.d.ts +0 -5
- package/dist/application/sources-service.d.ts.map +1 -1
- package/dist/application/sources-service.js +5 -44
- package/dist/application/sources-service.js.map +1 -1
- package/dist/application/templates/session.d.ts +24 -0
- package/dist/application/templates/session.d.ts.map +1 -0
- package/dist/application/templates/session.js +46 -0
- package/dist/application/templates/session.js.map +1 -0
- package/dist/application/upgrade-hub-mode-service.d.ts.map +1 -1
- package/dist/application/upgrade-hub-mode-service.js +0 -1
- package/dist/application/upgrade-hub-mode-service.js.map +1 -1
- package/dist/application/workspace-init-service.d.ts +60 -0
- package/dist/application/workspace-init-service.d.ts.map +1 -0
- package/dist/application/workspace-init-service.js +227 -0
- package/dist/application/workspace-init-service.js.map +1 -0
- package/dist/cli/commands/check-branch.d.ts.map +1 -1
- package/dist/cli/commands/check-branch.js +0 -3
- package/dist/cli/commands/check-branch.js.map +1 -1
- package/dist/cli/commands/plugin-doctor.d.ts.map +1 -1
- package/dist/cli/commands/plugin-doctor.js +0 -3
- package/dist/cli/commands/plugin-doctor.js.map +1 -1
- package/dist/cli/commands/project-md-upsert.d.ts.map +1 -1
- package/dist/cli/commands/project-md-upsert.js +5 -31
- package/dist/cli/commands/project-md-upsert.js.map +1 -1
- package/dist/cli/commands/session-close.d.ts.map +1 -1
- package/dist/cli/commands/session-close.js +1 -33
- package/dist/cli/commands/session-close.js.map +1 -1
- package/dist/cli/commands/session-create.d.ts.map +1 -1
- package/dist/cli/commands/session-create.js +5 -21
- package/dist/cli/commands/session-create.js.map +1 -1
- package/dist/cli/commands/session-resume.js +1 -1
- package/dist/cli/commands/session-resume.js.map +1 -1
- package/dist/cli/commands/set-working-branch.d.ts +3 -0
- package/dist/cli/commands/set-working-branch.d.ts.map +1 -0
- package/dist/cli/commands/set-working-branch.js +34 -0
- package/dist/cli/commands/set-working-branch.js.map +1 -0
- package/dist/cli/commands/skill-index.d.ts.map +1 -1
- package/dist/cli/commands/skill-index.js +0 -3
- package/dist/cli/commands/skill-index.js.map +1 -1
- package/dist/cli/commands/skills.d.ts +3 -0
- package/dist/cli/commands/skills.d.ts.map +1 -0
- package/dist/cli/commands/skills.js +10 -0
- package/dist/cli/commands/skills.js.map +1 -0
- package/dist/cli/commands/sources.d.ts.map +1 -1
- package/dist/cli/commands/sources.js +0 -3
- package/dist/cli/commands/sources.js.map +1 -1
- package/dist/cli/commands/workspace-init.d.ts +3 -0
- package/dist/cli/commands/workspace-init.d.ts.map +1 -0
- package/dist/cli/commands/workspace-init.js +69 -0
- package/dist/cli/commands/workspace-init.js.map +1 -0
- package/dist/cli/help-groups.d.ts.map +1 -1
- package/dist/cli/help-groups.js +8 -19
- package/dist/cli/help-groups.js.map +1 -1
- package/dist/cli/interactive-menu.d.ts +1 -1
- package/dist/cli/interactive-menu.d.ts.map +1 -1
- package/dist/cli/main.js +29 -37
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/parser.d.ts +0 -2
- package/dist/cli/parser.d.ts.map +1 -1
- package/dist/cli/parser.js +1 -13
- package/dist/cli/parser.js.map +1 -1
- package/dist/cli/tui/app.js +3 -38
- package/dist/cli/tui/app.js.map +1 -1
- package/dist/cli/tui/components/hub-init-alias.js +1 -1
- package/dist/cli/tui/components/hub-init-alias.js.map +1 -1
- package/dist/cli/tui/components/hub-init-form.d.ts.map +1 -1
- package/dist/cli/tui/components/hub-init-form.js +13 -12
- package/dist/cli/tui/components/hub-init-form.js.map +1 -1
- package/dist/cli/tui/components/workspace-init-alias.d.ts +5 -0
- package/dist/cli/tui/components/workspace-init-alias.d.ts.map +1 -0
- package/dist/cli/tui/components/workspace-init-alias.js +19 -0
- package/dist/cli/tui/components/workspace-init-alias.js.map +1 -0
- package/dist/cli/tui/components/workspace-init-form.d.ts +13 -0
- package/dist/cli/tui/components/workspace-init-form.d.ts.map +1 -0
- package/dist/cli/tui/components/workspace-init-form.js +87 -0
- package/dist/cli/tui/components/workspace-init-form.js.map +1 -0
- package/dist/cli/tui/data/activity.d.ts +1 -1
- package/dist/cli/tui/data/activity.d.ts.map +1 -1
- package/dist/cli/tui/data/activity.js +2 -2
- package/dist/cli/tui/data/activity.js.map +1 -1
- package/dist/cli/tui/data/workflow-content.d.ts.map +1 -1
- package/dist/cli/tui/data/workflow-content.js +67 -87
- package/dist/cli/tui/data/workflow-content.js.map +1 -1
- package/dist/cli/tui/tabs/project-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/project-tab.js +23 -97
- package/dist/cli/tui/tabs/project-tab.js.map +1 -1
- package/dist/cli/tui/tabs/skills-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/skills-tab.js +7 -7
- package/dist/cli/tui/tabs/skills-tab.js.map +1 -1
- package/dist/cli/tui/tabs/workflow-tab.d.ts +1 -3
- package/dist/cli/tui/tabs/workflow-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/workflow-tab.js +2 -2
- package/dist/cli/tui/tabs/workflow-tab.js.map +1 -1
- package/dist/cli/types.d.ts +3 -0
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/domain/plugin.d.ts +2 -12
- package/dist/domain/plugin.d.ts.map +1 -1
- package/dist/domain/project.d.ts +0 -9
- package/dist/domain/project.d.ts.map +1 -1
- package/dist/domain/session.d.ts +7 -24
- package/dist/domain/session.d.ts.map +1 -1
- package/dist/domain/skills.d.ts +22 -0
- package/dist/domain/skills.d.ts.map +1 -0
- package/dist/domain/skills.js +37 -0
- package/dist/domain/skills.js.map +1 -0
- package/dist/domain/types.d.ts +6 -2
- package/dist/domain/types.d.ts.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime/config-service.js +1 -1
- package/dist/runtime/config-service.js.map +1 -1
- package/dist/runtime/types.d.ts +0 -1
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime/types.js.map +1 -1
- package/package.json +12 -3
- package/skills/w/README.md +65 -0
- package/skills/w/SKILL.md +153 -0
- package/skills/w/artifacts/README.md +60 -0
- package/skills/w/artifacts/artifacts-core/BACKLOG.md +12 -0
- package/skills/w/artifacts/artifacts-core/CHECKPOINT.md +22 -0
- package/skills/w/artifacts/artifacts-core/SCRIPTS.sql +39 -0
- package/skills/w/artifacts/artifacts-core/SESSION.md +27 -0
- package/skills/w/artifacts/artifacts-core/TASKS.md +18 -0
- package/skills/w/artifacts/artifacts-dev/DECISION.md +11 -0
- package/skills/w/artifacts/artifacts-dev/TECHNICAL-NOTE.md +81 -0
- package/skills/w/artifacts/artifacts-research/ANALYSIS-FILE.md +48 -0
- package/skills/w/artifacts/artifacts-research/CONCLUSIONS.md +20 -0
- package/skills/w/commands/README.md +116 -0
- package/skills/w/commands/export-diagrams.md +35 -0
- package/skills/w/commands/export-manuals.md +35 -0
- package/skills/w/commands/export-reports.md +35 -0
- package/skills/w/commands/export-scripts.md +35 -0
- package/skills/w/commands/plan-exec.md +46 -0
- package/skills/w/commands/plan-new.md +44 -0
- package/skills/w/commands/quick.md +39 -0
- package/skills/w/commands/spec-new.md +63 -0
- package/skills/w/commands/spec-refine.md +41 -0
- package/skills/w/commands/workspace-init.md +39 -0
- package/skills/w/exports/README.md +88 -0
- package/skills/w/exports/export-diagrams/SKILL.md +125 -0
- package/skills/w/exports/export-manuals/SKILL.md +127 -0
- package/skills/w/exports/export-reports/SKILL.md +115 -0
- package/skills/w/exports/export-scripts/SKILL.md +135 -0
- package/skills/w/hooks/README.md +15 -0
- package/skills/{agent-workflow → w}/hooks/hooks.template.json +2 -2
- package/skills/w/loops/README.md +118 -0
- package/skills/w/loops/plan-exec-loop/SKILL.md +161 -0
- package/skills/w/loops/plan-new-loop/SKILL.md +97 -0
- package/skills/w/loops/quick-loop/SKILL.md +102 -0
- package/skills/w/loops/spec-refine-loop/SKILL.md +222 -0
- package/skills/w/roles/README.md +154 -0
- package/skills/w/roles/coding-standards/SKILL.md +82 -0
- package/skills/w/roles/diagrams/SKILL.md +248 -0
- package/skills/w/roles/git/SKILL.md +98 -0
- package/skills/w/roles/research/SKILL.md +181 -0
- package/skills/w/roles/sql/SKILL.md +137 -0
- package/skills/w/roles/testing/SKILL.md +180 -0
- package/skills/w/roles/tools/SKILL.md +148 -0
- package/skills/w/roles/ui-spec/SKILL.md +136 -0
- package/skills/w/roles/writing/SKILL.md +90 -0
- package/skills/agent-workflow/LICENSE +0 -661
- package/skills/agent-workflow/MANUAL-FUNCIONAL.md +0 -298
- package/skills/agent-workflow/MANUAL-TECNICO.md +0 -271
- package/skills/agent-workflow/README.md +0 -74
- package/skills/agent-workflow/SKILL.md +0 -112
- package/skills/agent-workflow/commands/README.md +0 -26
- package/skills/agent-workflow/commands/compact.md +0 -24
- package/skills/agent-workflow/commands/doctor.md +0 -100
- package/skills/agent-workflow/commands/export-arq.md +0 -77
- package/skills/agent-workflow/commands/export-conclusions.md +0 -78
- package/skills/agent-workflow/commands/export-plan.md +0 -74
- package/skills/agent-workflow/commands/export-qa-note.md +0 -30
- package/skills/agent-workflow/commands/export-report.md +0 -78
- package/skills/agent-workflow/commands/export-requirement.md +0 -30
- package/skills/agent-workflow/commands/export-scripts.md +0 -82
- package/skills/agent-workflow/commands/export-tech-manuals.md +0 -75
- package/skills/agent-workflow/commands/export-tech-note.md +0 -30
- package/skills/agent-workflow/commands/hub-init.md +0 -58
- package/skills/agent-workflow/commands/migrate.md +0 -56
- package/skills/agent-workflow/commands/patch.md +0 -49
- package/skills/agent-workflow/commands/project-init.md +0 -60
- package/skills/agent-workflow/commands/resume.md +0 -22
- package/skills/agent-workflow/commands/rules.md +0 -41
- package/skills/agent-workflow/commands/session.md +0 -35
- package/skills/agent-workflow/docs/TEST-PLAN.md +0 -163
- package/skills/agent-workflow/doctrine/README.md +0 -15
- package/skills/agent-workflow/doctrine/compact/SKILL.md +0 -145
- package/skills/agent-workflow/doctrine/doctor/SKILL.md +0 -86
- package/skills/agent-workflow/doctrine/hub-init/SKILL.md +0 -77
- package/skills/agent-workflow/doctrine/hub-init/references/multiroot-manual.md +0 -51
- package/skills/agent-workflow/doctrine/implement/SKILL.md +0 -290
- package/skills/agent-workflow/doctrine/implement/references/branch-verification.md +0 -16
- package/skills/agent-workflow/doctrine/implement/references/design-md-template.md +0 -108
- package/skills/agent-workflow/doctrine/implement/references/rollback-guide.md +0 -83
- package/skills/agent-workflow/doctrine/migrate/SKILL.md +0 -281
- package/skills/agent-workflow/doctrine/project-init/SKILL.md +0 -100
- package/skills/agent-workflow/doctrine/refactor/SKILL.md +0 -208
- package/skills/agent-workflow/doctrine/refactor/references/refactor-md-template.md +0 -108
- package/skills/agent-workflow/doctrine/refactor/references/strangler-checklist.md +0 -116
- package/skills/agent-workflow/doctrine/resume/SKILL.md +0 -199
- package/skills/agent-workflow/doctrine/rules/SKILL.md +0 -250
- package/skills/agent-workflow/doctrine/session/SKILL.md +0 -470
- package/skills/agent-workflow/doctrine/session/references/auto-plan-rules.md +0 -63
- package/skills/agent-workflow/doctrine/session/references/backlog-template.md +0 -95
- package/skills/agent-workflow/doctrine/session/references/branch-verification.md +0 -198
- package/skills/agent-workflow/doctrine/session/references/commits-policy.md +0 -111
- package/skills/agent-workflow/doctrine/session/references/communication-style.md +0 -50
- package/skills/agent-workflow/doctrine/session/references/graduacion-routing.md +0 -88
- package/skills/agent-workflow/doctrine/session/references/lifecycle-deep.md +0 -160
- package/skills/agent-workflow/doctrine/session/references/prompts/C1-specialty-selection.md +0 -11
- package/skills/agent-workflow/doctrine/session/references/prompts/C2-cost-guard.md +0 -14
- package/skills/agent-workflow/doctrine/session/references/prompts/M1-closure-commit-prompt.md +0 -104
- package/skills/agent-workflow/doctrine/session/references/prompts/M10-next-step.md +0 -17
- package/skills/agent-workflow/doctrine/session/references/prompts/M11-context.md +0 -16
- package/skills/agent-workflow/doctrine/session/references/prompts/M13-closure-cleanup.md +0 -61
- package/skills/agent-workflow/doctrine/session/references/prompts/M2-branch-caso-A.md +0 -14
- package/skills/agent-workflow/doctrine/session/references/prompts/M3-branch-caso-C.md +0 -33
- package/skills/agent-workflow/doctrine/session/references/prompts/M4-cross-source-hard-gate.md +0 -33
- package/skills/agent-workflow/doctrine/session/references/prompts/M5-modality-analyze.md +0 -15
- package/skills/agent-workflow/doctrine/session/references/prompts/M6-phase-gate.md +0 -31
- package/skills/agent-workflow/doctrine/session/references/prompts/M7-refactor-legacy-detected.md +0 -28
- package/skills/agent-workflow/doctrine/session/references/prompts/M8-refactor-cleanup.md +0 -16
- package/skills/agent-workflow/doctrine/session/references/prompts/M9-contract-review.md +0 -39
- package/skills/agent-workflow/doctrine/session/references/prompts/S1-type-design.md +0 -15
- package/skills/agent-workflow/doctrine/session/references/prompts/S2-topic-change-detection.md +0 -14
- package/skills/agent-workflow/doctrine/session/references/prompts/S3-flow-detection.md +0 -28
- package/skills/agent-workflow/doctrine/session/references/prompts/S4-resume.md +0 -27
- package/skills/agent-workflow/doctrine/session/references/prompts/S5-post-compact.md +0 -17
- package/skills/agent-workflow/doctrine/session/references/prompts/S6-scope.md +0 -16
- package/skills/agent-workflow/doctrine/session/references/prompts/S7-design-review.md +0 -37
- package/skills/agent-workflow/doctrine/session/references/prompts-catalog.md +0 -213
- package/skills/agent-workflow/doctrine/session/references/sandbox-readonly-rules.md +0 -82
- package/skills/agent-workflow/doctrine/session/references/specialty-decision-tree.md +0 -56
- package/skills/agent-workflow/doctrine/session/references/topic-change-rules.md +0 -67
- package/skills/agent-workflow/exports/README.md +0 -15
- package/skills/agent-workflow/exports/export-arq/SKILL.md +0 -229
- package/skills/agent-workflow/exports/export-arq/references/lexico-tecnico.md +0 -94
- package/skills/agent-workflow/exports/export-arq/references/template-c4.md +0 -293
- package/skills/agent-workflow/exports/export-arq/references/template-plantuml.puml +0 -77
- package/skills/agent-workflow/exports/export-arq/references/template-structurizr.dsl +0 -72
- package/skills/agent-workflow/exports/export-arq/references/validations.md +0 -231
- package/skills/agent-workflow/exports/export-conclusions/SKILL.md +0 -169
- package/skills/agent-workflow/exports/export-conclusions/references/dedup-rules.md +0 -154
- package/skills/agent-workflow/exports/export-conclusions/references/template-conclusions.md +0 -158
- package/skills/agent-workflow/exports/export-plan/SKILL.md +0 -225
- package/skills/agent-workflow/exports/export-plan/references/state-transitions.md +0 -141
- package/skills/agent-workflow/exports/export-plan/references/template-plan.md +0 -132
- package/skills/agent-workflow/exports/export-qa-note/SKILL.md +0 -31
- package/skills/agent-workflow/exports/export-report/SKILL.md +0 -262
- package/skills/agent-workflow/exports/export-report/references/lexico.md +0 -174
- package/skills/agent-workflow/exports/export-report/references/template-a.md +0 -95
- package/skills/agent-workflow/exports/export-report/references/template-b.md +0 -221
- package/skills/agent-workflow/exports/export-report/references/template-c.md +0 -180
- package/skills/agent-workflow/exports/export-report/references/validations.md +0 -255
- package/skills/agent-workflow/exports/export-requirement/SKILL.md +0 -31
- package/skills/agent-workflow/exports/export-scripts/SKILL.md +0 -211
- package/skills/agent-workflow/exports/export-scripts/references/code-scan-recommendations.md +0 -83
- package/skills/agent-workflow/exports/export-scripts/references/deprecation-plan.md +0 -80
- package/skills/agent-workflow/exports/export-scripts/references/lexico-tecnico.md +0 -47
- package/skills/agent-workflow/exports/export-scripts/references/manifest-template.md +0 -265
- package/skills/agent-workflow/exports/export-scripts/references/readme-template.md +0 -49
- package/skills/agent-workflow/exports/export-scripts/references/theme-handling.md +0 -141
- package/skills/agent-workflow/exports/export-scripts/references/validations.md +0 -69
- package/skills/agent-workflow/exports/export-tech-manuals/SKILL.md +0 -214
- package/skills/agent-workflow/exports/export-tech-manuals/references/lexico-tecnico.md +0 -97
- package/skills/agent-workflow/exports/export-tech-manuals/references/template-index.md +0 -123
- package/skills/agent-workflow/exports/export-tech-manuals/references/template-manual.md +0 -143
- package/skills/agent-workflow/exports/export-tech-manuals/references/validations.md +0 -211
- package/skills/agent-workflow/exports/export-tech-note/SKILL.md +0 -31
- package/skills/agent-workflow/hooks/README.md +0 -15
- package/skills/agent-workflow/references/README.md +0 -12
- package/skills/agent-workflow/references/checkpoint.md +0 -59
- package/skills/agent-workflow/references/dev-only.md +0 -50
- package/skills/agent-workflow/references/doctor.md +0 -61
- package/skills/agent-workflow/references/history.md +0 -40
- package/skills/agent-workflow/references/hooks.md +0 -35
- package/skills/agent-workflow/references/legacy-anchors.md +0 -50
- package/skills/agent-workflow/references/mcp.md +0 -34
- package/skills/agent-workflow/references/objetivo-tasks.md +0 -64
- package/skills/agent-workflow/references/orchestration.md +0 -86
- package/skills/agent-workflow/references/profile-parametrization.md +0 -88
- package/skills/agent-workflow/references/self.md +0 -68
- package/skills/agent-workflow/references/session-mgmt.md +0 -109
- package/skills/agent-workflow/references/sources.md +0 -102
- package/skills/agent-workflow/specialties/README.md +0 -14
- package/skills/agent-workflow/specialties/analyze-conclude/SKILL.md +0 -175
- package/skills/agent-workflow/specialties/analyze-conclude/references/incident-classification.md +0 -61
- package/skills/agent-workflow/specialties/analyze-investigate/SKILL.md +0 -148
- package/skills/agent-workflow/specialties/analyze-investigate/references/cost-guard.md +0 -85
- package/skills/agent-workflow/specialties/analyze-synthesize/SKILL.md +0 -127
- package/skills/agent-workflow/specialties/design-brief/SKILL.md +0 -90
- package/skills/agent-workflow/specialties/design-deliver/SKILL.md +0 -121
- package/skills/agent-workflow/specialties/design-develop/SKILL.md +0 -115
- package/skills/agent-workflow/specialties/design-discover/SKILL.md +0 -103
- package/skills/agent-workflow/standards/README.md +0 -12
- package/skills/agent-workflow/standards/coding-standards/SKILL.md +0 -102
- package/skills/agent-workflow/standards/coding-standards/references/angular-typescript.md +0 -266
- package/skills/agent-workflow/standards/coding-standards/references/database-conventions.md +0 -170
- package/skills/agent-workflow/standards/coding-standards/references/fe-be-integration.md +0 -300
- package/skills/agent-workflow/standards/coding-standards/references/frontend-structure.md +0 -182
- package/skills/agent-workflow/standards/coding-standards/references/java-spring.md +0 -244
- package/skills/agent-workflow/standards/coding-standards/references/project-structure.md +0 -197
- package/skills/agent-workflow/standards/frontend-design/SKILL.md +0 -62
- package/skills/agent-workflow/standards/frontend-design/references/feedback-toasts-patterns.md +0 -249
- package/skills/agent-workflow/standards/frontend-design/references/form-patterns.md +0 -278
- package/skills/agent-workflow/standards/frontend-design/references/list-patterns.md +0 -256
- package/skills/agent-workflow/standards/frontend-design/references/modal-patterns.md +0 -220
- package/skills/agent-workflow/standards/frontend-design/references/navigation-patterns.md +0 -224
- package/skills/agent-workflow/standards/redaccion-simple/SKILL.md +0 -128
- package/skills/agent-workflow/standards/sql-rollback-generator/SKILL.md +0 -158
- package/skills/agent-workflow/standards/sql-rollback-generator/references/irreversible-checklist.md +0 -161
- package/skills/agent-workflow/standards/sql-rollback-generator/references/release-rollback.md +0 -133
- package/skills/agent-workflow/standards/sql-rollback-generator/references/rollback-patterns.md +0 -257
- package/skills/agent-workflow/standards/sql-script-organizer/SKILL.md +0 -243
- package/skills/agent-workflow/standards/sql-script-organizer/references/bundle-readme-template.md +0 -82
- package/skills/agent-workflow/standards/sql-script-organizer/references/categorization-rules.md +0 -122
- package/skills/agent-workflow/standards/sql-script-organizer/references/consolidation-cross-session.md +0 -125
- package/skills/agent-workflow/standards/sql-script-organizer/references/scripts-sql-format.md +0 -140
- package/skills/agent-workflow/standards/testing-strategy/SKILL.md +0 -113
- package/skills/agent-workflow/standards/testing-strategy/references/test-levels.md +0 -255
- package/skills/agent-workflow/workflows/README.md +0 -12
- package/skills/agent-workflow/workflows/analyze-workflow/SKILL.md +0 -84
- package/skills/agent-workflow/workflows/design-workflow/SKILL.md +0 -79
- package/skills/agent-workflow/workflows/dev-workflow/SKILL.md +0 -172
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: design-develop
|
|
3
|
-
description: Convergencia en problem statement + divergencia en soluciones (variantes/mocks). Iteración con el usuario hasta tener una propuesta validada. Produce PROBLEM.md, IDEAS.md y opcionalmente mocks/wireframes en `docs/referencias/` (carpeta transversal manual del usuario, DEC-004 v2). Invocado en execution después de design-discover (o directo si el OBJECTIVE no requiere discovery).
|
|
4
|
-
version: 2.2.0
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# design-develop — qtc v2.1+
|
|
8
|
-
|
|
9
|
-
Specialty skill **design**: convergencia en problema + divergencia/iteración de soluciones. Núcleo creativo del flujo design.
|
|
10
|
-
|
|
11
|
-
## Cuándo se invoca
|
|
12
|
-
|
|
13
|
-
- Composición desde `agent-workflow:session` en `execution` cuando hay OBJECTIVE + (DISCOVERY.md o sesión saltó discovery por trivialidad).
|
|
14
|
-
- NL del usuario: "vamos a diseñar opciones", "propone variantes", "cómo lo resolvemos", "boceto rápido".
|
|
15
|
-
- Recomendado por `design-discover` como siguiente paso.
|
|
16
|
-
|
|
17
|
-
## Acción
|
|
18
|
-
|
|
19
|
-
Producir 2-3 artefactos en paralelo:
|
|
20
|
-
|
|
21
|
-
### 1. PROBLEM.md — convergencia
|
|
22
|
-
|
|
23
|
-
Statement de problema en 1-3 oraciones. Foco en QUÉ se resuelve, no en CÓMO. (legacy: `PROBLEMA.md`)
|
|
24
|
-
|
|
25
|
-
```markdown
|
|
26
|
-
# Problem — sessionNNN-design-<slug>
|
|
27
|
-
|
|
28
|
-
## Statement
|
|
29
|
-
[1-3 oraciones: usuario X necesita Y porque Z].
|
|
30
|
-
|
|
31
|
-
## Key constraints
|
|
32
|
-
- [restricciones técnicas, de UX, de tiempo, de tokens del design system]
|
|
33
|
-
|
|
34
|
-
## Success metrics
|
|
35
|
-
- [cómo sabemos que la solución funciona]
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### 2. IDEAS.md — divergencia
|
|
39
|
-
|
|
40
|
-
Lista de variantes con tradeoffs. **No** elegir todavía:
|
|
41
|
-
|
|
42
|
-
```markdown
|
|
43
|
-
# Ideas — sessionNNN-design-<slug>
|
|
44
|
-
|
|
45
|
-
## Variant A: <name>
|
|
46
|
-
- Descripción 1-2 oraciones.
|
|
47
|
-
- Pros: ...
|
|
48
|
-
- Cons: ...
|
|
49
|
-
- Mockup: docs/referencias/A-mockup.png (si el usuario lo aporta) o link Figma/Stitch
|
|
50
|
-
|
|
51
|
-
## Variant B: <name>
|
|
52
|
-
- ...
|
|
53
|
-
|
|
54
|
-
## Variant C: ...
|
|
55
|
-
- (3 variantes es típico; más sólo si justifica)
|
|
56
|
-
|
|
57
|
-
## Initial recommendation
|
|
58
|
-
- [variante preferida y por qué; queda abierto a feedback del usuario]
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
### 3. `docs/referencias/` — mocks aportados por el usuario (DEC-004 v2)
|
|
62
|
-
|
|
63
|
-
- Wireframes/mocks bajos en fidelidad para iteración rápida.
|
|
64
|
-
- Storage:
|
|
65
|
-
- Local: `<workspace-root>/docs/referencias/A-*.png|svg|md` (el **usuario** los coloca; el AI los lee). Carpeta transversal — cualquier sesión accede a las mismas referencias sin re-subirlas.
|
|
66
|
-
- Externo (Figma/Stitch): URL en IDEAS.md, nada en `docs/referencias/`.
|
|
67
|
-
- **El AI no escribe en `docs/referencias/` salvo solicitud explícita** del usuario ("guardá este wireframe en referencias"). Si necesita generar un esqueleto ASCII, lo embebe directamente en IDEAS.md.
|
|
68
|
-
- Para `type=system`, las referencias pueden ser ejemplos de uso de tokens/componentes (no mockups de pantallas).
|
|
69
|
-
|
|
70
|
-
## Loop de iteración
|
|
71
|
-
|
|
72
|
-
```
|
|
73
|
-
[propuestas] → [feedback usuario] → [refinar] → [propuestas v2] → [...]
|
|
74
|
-
↓
|
|
75
|
-
[convergencia]
|
|
76
|
-
↓
|
|
77
|
-
[→ design-deliver]
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
Cada iteración:
|
|
81
|
-
- Editar PROBLEM.md/IDEAS.md (no recrear).
|
|
82
|
-
- Si el usuario aporta nuevos mockups en `docs/referencias/`, leerlos y reflejarlos en IDEAS.md. El AI no toca `docs/referencias/` salvo pedido explícito.
|
|
83
|
-
- Confirmar con el usuario antes de la próxima iteración.
|
|
84
|
-
|
|
85
|
-
## Reglas
|
|
86
|
-
|
|
87
|
-
- **3 variantes es óptimo**: si el espacio de soluciones es claro, 1-2 alcanza. Si el problema es muy abierto, hasta 4. Más es ruido.
|
|
88
|
-
- **No saltar a deliver sin convergencia explícita**: el usuario debe confirmar "OK, vamos con la variante X" antes de pasar a `design-deliver`.
|
|
89
|
-
- **Mocks de baja fidelidad primero**: alta fidelidad en `design-deliver`. Acá importa el flujo, no el pixel.
|
|
90
|
-
- **Spec-only**: NO escribir código de UI. Mocks como imágenes/wireframes/Figma URLs.
|
|
91
|
-
- **Frontend-design es referencia, no obligación**: para `type=system`, las decisiones de tokens/componentes ALIMENTAN `frontend-design` (no al revés).
|
|
92
|
-
|
|
93
|
-
## Composición con otras skills
|
|
94
|
-
|
|
95
|
-
| Skill | Cuándo |
|
|
96
|
-
|---|---|
|
|
97
|
-
| `design-deliver` | siguiente paso una vez hay convergencia |
|
|
98
|
-
| `frontend-design` | consultar patterns existentes para validar consistencia |
|
|
99
|
-
| `design-discover` | si surge nueva pregunta que requiere investigación, retroceder |
|
|
100
|
-
|
|
101
|
-
## Sandbox read-only
|
|
102
|
-
|
|
103
|
-
Reglas universales en el canon (`sandbox-readonly-rules.md`). En plan mode esta skill describe en el plan file:
|
|
104
|
-
|
|
105
|
-
- **Paths destino**: `.workflow/sessions/<folder>/PROBLEM.md`, `IDEAS.md`, opcional lectura de `<workspace-root>/docs/referencias/` (carpeta transversal manual del usuario, DEC-004 v2) con mocks/wireframes que el usuario aporte.
|
|
106
|
-
- **Problem statement** propuesto: 1-2 oraciones que capturan QUÉ resolver y POR QUÉ.
|
|
107
|
-
- **Variantes a explorar**: 2-4 enfoques distintos (estructura, layout, interacción) con pros/cons textuales — sin diseñar mocks aún.
|
|
108
|
-
- **Iteración prevista**: cuántas rondas con el usuario, qué validar en cada una.
|
|
109
|
-
|
|
110
|
-
NO ejecuta: `Write` sobre PROBLEM.md/IDEAS.md, generación de mocks en `docs/referencias/` (manual del usuario), ediciones a `docs/especificaciones/`.
|
|
111
|
-
|
|
112
|
-
## Recursos
|
|
113
|
-
|
|
114
|
-
- skill `frontend-design` — patterns reutilizables (form/list/modal/navigation/feedback).
|
|
115
|
-
- shared-contract §14 — fase execution del lifecycle universal.
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: design-discover
|
|
3
|
-
description: Fase de investigación divergente del diseño dentro del lifecycle universal. Investiga usuarios, flows existentes, código relacionado, design system actual y referencias externas. Produce DISCOVERY.md como artefacto lazy. Invocado desde execution cuando ya hay OBJECTIVE con Type capturado por design-brief y el usuario está listo para divergir antes de converger en problema/soluciones.
|
|
4
|
-
version: 1.2.0
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# design-discover — qtc v1.1+
|
|
8
|
-
|
|
9
|
-
Specialty skill **design**: investigación divergente. Primer paso de `execution` para sesiones design.
|
|
10
|
-
|
|
11
|
-
## Cuándo se invoca
|
|
12
|
-
|
|
13
|
-
- Composición desde `agent-workflow:session` en `execution` cuando hay OBJECTIVE con `## Type` (legacy: `## Tipo`) y todavía no existe `DISCOVERY.md`.
|
|
14
|
-
- NL del usuario: "investigá el contexto", "qué hay del usuario X", "miremos cómo está hecho hoy".
|
|
15
|
-
- Recomendado por `design-brief` como siguiente paso natural.
|
|
16
|
-
|
|
17
|
-
## Acción
|
|
18
|
-
|
|
19
|
-
Producir o iterar `.workflow/sessions/<folder>/DISCOVERY.md` con investigación divergente sobre 4 ejes:
|
|
20
|
-
|
|
21
|
-
### 1. Usuarios
|
|
22
|
-
|
|
23
|
-
- Quién va a usar esto, en qué contexto, con qué frecuencia.
|
|
24
|
-
- Si hay personas/role-models existentes, referenciarlas.
|
|
25
|
-
- Si hay usuarios reales accesibles, considerar entrevistas (lo decide el usuario).
|
|
26
|
-
|
|
27
|
-
### 2. Flows / proceso actual
|
|
28
|
-
|
|
29
|
-
- Cómo se hace HOY (si existe). Pasos, frustraciones, walking skeleton.
|
|
30
|
-
- Capturas de pantalla / refs al código existente si aplica.
|
|
31
|
-
- Para `type=project` → mirar pantallas existentes del módulo.
|
|
32
|
-
- Para `type=system` → mirar componentes/tokens existentes en `docs/especificaciones/` (kind=`especificacion`, modelo nuevo) o el design system instalado.
|
|
33
|
-
|
|
34
|
-
### 3. Design system existente
|
|
35
|
-
|
|
36
|
-
- Qué tokens / componentes ya tenemos que aplican.
|
|
37
|
-
- Patterns establecidos (`skill frontend-design references/*-patterns.md`).
|
|
38
|
-
- Decisiones previas en `docs/especificaciones/NNN-*/DELIVERY.md` (kind=`especificacion`; legacy: `ENTREGA.md`).
|
|
39
|
-
|
|
40
|
-
### 4. Referencias externas
|
|
41
|
-
|
|
42
|
-
- Productos parecidos (con screenshots/links si el usuario los provee).
|
|
43
|
-
- Buenas prácticas del dominio.
|
|
44
|
-
- Restricciones de accesibilidad / responsive / multi-idioma.
|
|
45
|
-
|
|
46
|
-
## Estructura típica de DISCOVERY.md
|
|
47
|
-
|
|
48
|
-
```markdown
|
|
49
|
-
# Discovery — sessionNNN-design-<slug>
|
|
50
|
-
|
|
51
|
-
## Users
|
|
52
|
-
|
|
53
|
-
- ...
|
|
54
|
-
|
|
55
|
-
## Current flow
|
|
56
|
-
|
|
57
|
-
- ...
|
|
58
|
-
|
|
59
|
-
## Applicable design system
|
|
60
|
-
|
|
61
|
-
- Tokens: ...
|
|
62
|
-
- Components: ...
|
|
63
|
-
- Patterns: ...
|
|
64
|
-
|
|
65
|
-
## External references
|
|
66
|
-
|
|
67
|
-
- ...
|
|
68
|
-
|
|
69
|
-
## Key findings
|
|
70
|
-
|
|
71
|
-
- [1-3 hallazgos accionables que el siguiente paso (define+develop) usa]
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
## Reglas
|
|
75
|
-
|
|
76
|
-
- **Divergir ahora, converger después**: no proponer soluciones todavía — eso es `design-develop`.
|
|
77
|
-
- **Citar fuentes**: cada afirmación con un link/path a evidencia (código, screenshots, docs).
|
|
78
|
-
- **DISCOVERY.md es lazy**: si el OBJECTIVE es trivial (ej. cambio menor a un componente existente), saltar a `design-develop` directo.
|
|
79
|
-
- **No escribir código**: spec-only siempre.
|
|
80
|
-
|
|
81
|
-
## Composición con otras skills
|
|
82
|
-
|
|
83
|
-
| Skill | Cuándo |
|
|
84
|
-
|---|---|
|
|
85
|
-
| `design-develop` | siguiente paso una vez DISCOVERY tiene hallazgos accionables |
|
|
86
|
-
| `frontend-design` | consultar patterns existentes para el inventario "design system aplicable" |
|
|
87
|
-
| `analyze-investigate` | si la investigación requiere análisis técnico profundo (latencia, datos), invocar acá |
|
|
88
|
-
|
|
89
|
-
## Sandbox read-only
|
|
90
|
-
|
|
91
|
-
Reglas universales en el canon (`sandbox-readonly-rules.md`). En plan mode esta skill describe en el plan file:
|
|
92
|
-
|
|
93
|
-
- **Path destino**: `.workflow/sessions/<folder>/DISCOVERY.md`.
|
|
94
|
-
- **Fuentes a consultar**: pantallas existentes (paths o screenshots), flows del repo, design system actual (`docs/especificaciones/` con kind=`especificacion` y `## Type: system` interno), referencias externas (links). Material aportado por el usuario en `<workspace-root>/docs/referencias/` también se considera (carpeta transversal — DEC-004 v2).
|
|
95
|
-
- **Preguntas de investigación**: lista priorizada (qué hacen los usuarios hoy, qué duele, qué falta).
|
|
96
|
-
- **Esqueleto del DISCOVERY.md**: secciones (Contexto, Stakeholders, Estado actual, Pain points, Referencias, Preguntas abiertas).
|
|
97
|
-
|
|
98
|
-
NO ejecuta: `Read` sobre código fuente (sí permitido — read-only), `Write` sobre DISCOVERY.md.
|
|
99
|
-
|
|
100
|
-
## Recursos
|
|
101
|
-
|
|
102
|
-
- skill `frontend-design` — patterns reutilizables.
|
|
103
|
-
- shared-contract §14 — fase execution del lifecycle universal.
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# standards/
|
|
2
|
-
|
|
3
|
-
Estándares técnicos universales (no doctrina del lifecycle, no específicos de empresa).
|
|
4
|
-
|
|
5
|
-
Contenido esperado (T2 PR2):
|
|
6
|
-
|
|
7
|
-
- `coding-standards.md` — estándares por stack (Java/Spring, Angular/TS, Node) + seguridad (sin secrets, SQL parametrizado, logging por nivel).
|
|
8
|
-
- `sql-mutation-guard.md` — patrón del hook que aborta SQL no parametrizado / DDL fuera de scripts/.
|
|
9
|
-
- `i18n-conventions.md` — convención EN-canon + ES-legacy aliases bilingües.
|
|
10
|
-
- `commit-style.md` — formato de commit messages compatible con el ecosistema.
|
|
11
|
-
|
|
12
|
-
Inyectables vía `profile.migrate_legacy_rules[]` cuando una empresa tiene estilos heredados.
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: coding-standards
|
|
3
|
-
description: Estándares de código por stack (Java/Spring, Angular, Node) — fail-fast, logging por nivel, seguridad (no secrets, SQL parametrizado), naming descriptivo, manejo de errores, validación de input, reglas FE-BE (Sparse DTO unificado, PATCH semantics, sin fallbacks ocultos). Activar al implementar, revisar o refactorizar, o ante NL como buenas prácticas/código limpio/cómo valido este input. Referencia transversal sin dependencia de sesiones.
|
|
4
|
-
version: 0.4.0
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
> **Profile parametrization**: lee `mcp_databases[] + examples_path` de `profile.json` (resuelto vía cascade 5 capas). Ver [`references/profile-parametrization.md`](../../references/profile-parametrization.md) para el contrato completo y comportamiento por defecto cuando el profile está vacío.
|
|
8
|
-
|
|
9
|
-
# Coding Standards
|
|
10
|
-
|
|
11
|
-
Estándares de código aplicables durante la implementación. Consultar la referencia del stack correspondiente para detalles.
|
|
12
|
-
|
|
13
|
-
## Principios generales
|
|
14
|
-
|
|
15
|
-
- **SOLID** — Single Responsibility, Open/Closed, Liskov, Interface Segregation, Dependency Inversion
|
|
16
|
-
- **Fail fast** — Validar y retornar errores al inicio del método (early returns, evitar nesting)
|
|
17
|
-
- **Nombres descriptivos** — El código habla por sí mismo; comentarios solo para el "por qué"
|
|
18
|
-
- **Métodos pequeños** — Una sola responsabilidad por método/función
|
|
19
|
-
- **Composición sobre herencia**
|
|
20
|
-
- **Reutilización antes que duplicación (DRY)** — antes de crear un componente, función o clase nueva, revisar si ya existe en `shared/` (frontend) o el paquete `common/`/`util/` (backend). Si un patrón aparece 2-3 veces, proponer extracción. Aplica transversalmente; para detalles de componentes frontend y `shared/`, ver skill `frontend-design` + `references/frontend-structure.md`.
|
|
21
|
-
|
|
22
|
-
## Estándares por stack
|
|
23
|
-
|
|
24
|
-
### Java / Spring Boot
|
|
25
|
-
Constructor Injection (sin Field Injection), `@Transactional(readOnly=true)` para lecturas, Java records para DTOs Request/Response, Jakarta Validation para inputs. Ver `references/java-spring.md`.
|
|
26
|
-
|
|
27
|
-
### Angular / TypeScript
|
|
28
|
-
Constructor injection, NgModules, `async` pipe en templates, evitar `any`. Arquitectura `@data`/`@presentation`. Ver `references/angular-typescript.md` y `references/frontend-structure.md`.
|
|
29
|
-
|
|
30
|
-
## Integración FE-BE (flow=dev v2.6+)
|
|
31
|
-
|
|
32
|
-
Aplica a sesiones `flow=dev` con `## Type: feature|refactor` y a refactors guiados por `agent-workflow:refactor`. Reglas canónicas en `references/fe-be-integration.md`:
|
|
33
|
-
|
|
34
|
-
- **R1 — Sparse DTO unificado**: mismo DTO `<Feature>SaveRequest` para create + edit, todos los campos nullable. `null` = "no tocar".
|
|
35
|
-
- **R2 — PATCH para edit**: `@PatchMapping` en BE, `http.patch()` en FE. POST queda solo para create. PUT no se usa salvo replace total justificado.
|
|
36
|
-
- **R3 — FE envía solo cambios**: payload diff entre `formValue` y entidad original.
|
|
37
|
-
- **R4 — Sin fallbacks que oculten errores**: prohibido `catchError(() => of([]))` en FE; prohibido try/catch con fallback al método legacy en BE durante migraciones. Usar feature flags explícitas si se necesita rollout gradual.
|
|
38
|
-
- **R5 — Validación BE con Bean Validation + groups**: `@NotNull(groups = OnCreate.class)` para distinguir reglas POST vs PATCH cuando comparten DTO.
|
|
39
|
-
- **R6 — DB stub-first**: funciones/SP nuevas arrancan en Phase 0 devolviendo mock (`RETURN '[]'::jsonb`); implementación real recién en Phase 1/2.
|
|
40
|
-
|
|
41
|
-
## Seguridad
|
|
42
|
-
|
|
43
|
-
- **Nunca** exponer secrets, API keys o credenciales en código
|
|
44
|
-
- **Nunca** logear datos sensibles (contraseñas, tokens, datos personales)
|
|
45
|
-
- **Siempre** parametrizar queries SQL (nunca concatenar strings)
|
|
46
|
-
- **BD vía MCP** — `<mcp-cert>` (pruebas) y `<mcp-prod>` (producción) son READONLY. Modificaciones a BD solo mediante scripts SQL versionados en `docs/scripts/` del workspace de la fuente; el usuario es quien aplica el script (no el AI), nunca ejecución directa via MCP, Bash, psql ni cualquier otro canal. Excepción única: el usuario explícitamente pide "ejecutalo vos contra cert" — aún así, confirmación por bloque y no asumir autorización ampliada
|
|
47
|
-
|
|
48
|
-
## Manejo de errores HTTP
|
|
49
|
-
|
|
50
|
-
- **Nunca silenciar errores HTTP con `catchError(() => of([]))` ni equivalentes.** Los errores del backend se propagan al usuario vía toast/mensaje; solo así detectamos regresiones durante guardado, sincronizaciones y creaciones. Si hace falta lógica de reintento, usar operadores RxJS explícitos (`retry`, `retryWhen`), no silenciar.
|
|
51
|
-
|
|
52
|
-
## Logging
|
|
53
|
-
|
|
54
|
-
- `ERROR` — Fallos que requieren atención inmediata
|
|
55
|
-
- `WARN` — Situaciones inesperadas pero manejadas
|
|
56
|
-
- `INFO` — Eventos de negocio relevantes (inicio/fin de procesos)
|
|
57
|
-
- `DEBUG` — Detalle técnico para diagnóstico
|
|
58
|
-
|
|
59
|
-
## Git y ramas
|
|
60
|
-
|
|
61
|
-
Política de commits: ver `agent-workflow:commits-policy` (canónico).
|
|
62
|
-
|
|
63
|
-
### Estrategia de ramas
|
|
64
|
-
- **`certificacion`** — Rama principal/producción. Base para crear feature branches.
|
|
65
|
-
- **`desarrollo`** — Rama QA. Solo para probar features desplegados. Se sincroniza desde `certificacion`. No se usa como base.
|
|
66
|
-
- **Feature branches** — Siempre desde `certificacion`, PR hacia `certificacion`.
|
|
67
|
-
|
|
68
|
-
### Prefijo opcional Conventional Commits
|
|
69
|
-
|
|
70
|
-
Si la sesión/equipo lo prefiere, se puede combinar con el formato canónico:
|
|
71
|
-
|
|
72
|
-
- `feat(session<NNN>):` nueva funcionalidad
|
|
73
|
-
- `fix(session<NNN>):` corrección de bug
|
|
74
|
-
- `docs(session<NNN>):` documentación
|
|
75
|
-
- `chore(session<NNN>):` mantenimiento, dependencias
|
|
76
|
-
- `refactor(session<NNN>):` reestructuración sin cambio funcional
|
|
77
|
-
|
|
78
|
-
Ramas: `feature/`, `fix/`, `hotfix/` + descripción-kebab-case.
|
|
79
|
-
|
|
80
|
-
## Sandbox read-only
|
|
81
|
-
|
|
82
|
-
Canon universal en `../session/references/sandbox-readonly-rules.md`. Esta skill es read-only por diseño — carga estándares de código por stack y reglas FE-BE, no edita ni ejecuta nada.
|
|
83
|
-
|
|
84
|
-
En plan mode: describir en el plan file qué reglas se aplicarían al edit/refactor propuesto (fail-fast, FE-BE R1-R6, MCP READONLY, SQL parametrizado) y listar los refs relevantes (Java/Spring, Angular/TypeScript, fe-be-integration). NO ejecuta `Write`, `Edit`, `MultiEdit`, `Bash` con efectos colaterales, ni queries MCP mutantes.
|
|
85
|
-
|
|
86
|
-
Compatible con plan mode sin restricciones adicionales.
|
|
87
|
-
|
|
88
|
-
## Recursos adicionales
|
|
89
|
-
|
|
90
|
-
### Archivos de referencia
|
|
91
|
-
- **`references/fe-be-integration.md`** — Reglas FE-BE (Sparse DTO unificado, PATCH, sin fallbacks ocultos, Bean Validation con groups, DB stub-first). Aplica a `## Type: feature|refactor`.
|
|
92
|
-
- **`references/java-spring.md`** — Convenciones Java/Spring Boot (inyección, records, transacciones, validación) + PATCH+Sparse DTO con records.
|
|
93
|
-
- **`references/angular-typescript.md`** — Convenciones Angular/TypeScript (constructor injection, NgModules, ApiService) + PATCH client + interfaces sparse.
|
|
94
|
-
- **`references/frontend-structure.md`** — Arquitectura `@data`/`@presentation`, ApiService, interfaces espejeo backend, environments, build
|
|
95
|
-
- **`references/database-conventions.md`** — Nomenclatura BD: esquemas `esq_`, tablas `tb_`, columnas, sequences, funciones `fn_`/`sp_`, patrón maestra-detalle, auditoría, estilo de scripts SQL (transacciones, CTE, comentarios, idempotencia)
|
|
96
|
-
- **`references/project-structure.md`** — Estructura de paquetes backend, capas Entity→Repository→Service→Controller, wrappers `ReqBase`/`RespBase`, convención DTOs `P`/`R`/`Req`
|
|
97
|
-
- **`../frontend-design/`** — Principios de diseño UX para formularios de mantenimiento (agnóstico a framework) + reutilización de componentes y framework-first CSS. Consultar en paralelo con `angular-typescript.md` cuando el trabajo es frontend de mantenimiento.
|
|
98
|
-
|
|
99
|
-
### Skills de base de datos
|
|
100
|
-
Cuando el stack involucra BD y se escriben scripts SQL:
|
|
101
|
-
- **`sql-script-organizer`** — Organiza scripts en 4 categorías, aplica estilo y genera bundle listo para producción
|
|
102
|
-
- **`sql-rollback-generator`** — Genera rollback acoplado por script y bundle global de reversión
|
|
@@ -1,266 +0,0 @@
|
|
|
1
|
-
# Angular / TypeScript — Convenciones detalladas
|
|
2
|
-
|
|
3
|
-
## Inyección de servicios
|
|
4
|
-
|
|
5
|
-
Los proyectos actuales usan constructor injection con `private`:
|
|
6
|
-
|
|
7
|
-
```typescript
|
|
8
|
-
@Injectable({ providedIn: 'root' })
|
|
9
|
-
export class SolicitudService {
|
|
10
|
-
constructor(private apiService: ApiService) {}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
@Component({ ... })
|
|
14
|
-
export class MiComponente {
|
|
15
|
-
constructor(
|
|
16
|
-
private solicitudService: SolicitudService,
|
|
17
|
-
private router: Router
|
|
18
|
-
) {}
|
|
19
|
-
}
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
> **Nota**: `inject()` es válido en Angular 14+ y preferible en proyectos nuevos, pero seguir la convención del proyecto actual.
|
|
23
|
-
|
|
24
|
-
## NgModules
|
|
25
|
-
|
|
26
|
-
Los proyectos usan NgModules con routing modules separados:
|
|
27
|
-
|
|
28
|
-
```typescript
|
|
29
|
-
@NgModule({
|
|
30
|
-
declarations: [AppComponent],
|
|
31
|
-
imports: [
|
|
32
|
-
BrowserModule,
|
|
33
|
-
AppRoutingModule,
|
|
34
|
-
ComponentsModule,
|
|
35
|
-
SharedModule,
|
|
36
|
-
ToastrModule.forRoot(),
|
|
37
|
-
BrowserAnimationsModule
|
|
38
|
-
],
|
|
39
|
-
bootstrap: [AppComponent]
|
|
40
|
-
})
|
|
41
|
-
export class AppModule {}
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
> **Nota**: Standalone components son válidos en Angular 15+ pero los proyectos actuales no los usan. No migrar a standalone a menos que el usuario lo pida.
|
|
45
|
-
|
|
46
|
-
## Async pipe en templates
|
|
47
|
-
|
|
48
|
-
Preferir async pipe sobre subscribe manual para datos del template:
|
|
49
|
-
|
|
50
|
-
```html
|
|
51
|
-
<div *ngIf="solicitudes$ | async as solicitudes">
|
|
52
|
-
<app-tabla [data]="solicitudes"></app-tabla>
|
|
53
|
-
</div>
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
```typescript
|
|
57
|
-
solicitudes$ = this.solicitudService.listar();
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## Tipos estrictos
|
|
61
|
-
|
|
62
|
-
Evitar `any`. Usar interfaces en `@data/interfaces/`:
|
|
63
|
-
|
|
64
|
-
```typescript
|
|
65
|
-
// Interfaces que espejean el backend
|
|
66
|
-
export interface IResponsePayload<T> {
|
|
67
|
-
trace: Trace;
|
|
68
|
-
status: Status;
|
|
69
|
-
payload: T;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export interface ResponseDTO {
|
|
73
|
-
identificador: number;
|
|
74
|
-
cuerpo: string;
|
|
75
|
-
mensaje: string;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// Incorrecto
|
|
79
|
-
const data: any = response.body; // NO
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
## Estructura de proyecto
|
|
83
|
-
|
|
84
|
-
Ver `references/frontend-structure.md` para la arquitectura completa `@data`/`@presentation`.
|
|
85
|
-
|
|
86
|
-
## PATCH + Sparse DTO unificado (qtc-dev v2.6+)
|
|
87
|
-
|
|
88
|
-
Para mantenimientos CRUD seguir las reglas de `references/fe-be-integration.md`:
|
|
89
|
-
|
|
90
|
-
- **Interface única** `<Feature>SaveRequest` para create + edit con campos opcionales (`?` o `| null`).
|
|
91
|
-
- **POST** envía todos los required cargados; **PATCH** envía solo los campos modificados (resto omitido).
|
|
92
|
-
- ApiService expone `patch<T>(url, body)` paralelo a `post<T>(url, body)`.
|
|
93
|
-
|
|
94
|
-
```typescript
|
|
95
|
-
export interface CategoriaSaveRequest {
|
|
96
|
-
nombre?: string | null;
|
|
97
|
-
descripcion?: string | null;
|
|
98
|
-
activo?: boolean | null;
|
|
99
|
-
ordenVisual?: number | null;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
@Injectable({ providedIn: 'root' })
|
|
103
|
-
export class CategoriasService {
|
|
104
|
-
constructor(private apiService: ApiService) {}
|
|
105
|
-
|
|
106
|
-
create(req: CategoriaSaveRequest): Observable<IResponsePayload<CategoriaResponse>> {
|
|
107
|
-
return this.apiService.post(`${env.API_ADMIN}v1/categorias`, req);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
edit(id: number, cambios: CategoriaSaveRequest): Observable<IResponsePayload<CategoriaResponse>> {
|
|
111
|
-
return this.apiService.patch(`${env.API_ADMIN}v1/categorias/${id}`, cambios);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
En el componente de edición, construir el payload diff con solo los campos que cambiaron:
|
|
117
|
-
|
|
118
|
-
```typescript
|
|
119
|
-
guardar(): void {
|
|
120
|
-
const original = this.categoriaOriginal;
|
|
121
|
-
const form = this.form.value;
|
|
122
|
-
const cambios: CategoriaSaveRequest = {};
|
|
123
|
-
if (form.nombre !== original.nombre) cambios.nombre = form.nombre;
|
|
124
|
-
if (form.descripcion !== original.descripcion) cambios.descripcion = form.descripcion;
|
|
125
|
-
if (form.activo !== original.activo) cambios.activo = form.activo;
|
|
126
|
-
if (form.ordenVisual !== original.ordenVisual) cambios.ordenVisual = form.ordenVisual;
|
|
127
|
-
|
|
128
|
-
if (Object.keys(cambios).length === 0) return; // nada cambió
|
|
129
|
-
|
|
130
|
-
this.servicio.edit(original.id, cambios).subscribe({
|
|
131
|
-
next: (res) => this.toast.success('Guardado'),
|
|
132
|
-
error: (err) => this.errorHandler.handle(err) // R4 — no silenciar
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
**Anti-pattern**: enviar `form.value` completo en PATCH equivale a PUT y rompe la semántica sparse. Detalles + casos edge: `references/fe-be-integration.md`.
|
|
138
|
-
|
|
139
|
-
## Services y API
|
|
140
|
-
|
|
141
|
-
Todas las llamadas HTTP pasan por `ApiService` (wrapper central en `@data/services/`):
|
|
142
|
-
|
|
143
|
-
```typescript
|
|
144
|
-
@Injectable({ providedIn: 'root' })
|
|
145
|
-
export class SolicitudService {
|
|
146
|
-
constructor(private apiService: ApiService) {}
|
|
147
|
-
|
|
148
|
-
generaSolicitud(solicitud: Solicitud): Observable<IResponsePayload<ResponseDTO>> {
|
|
149
|
-
const request = armarPayload<any>(solicitud);
|
|
150
|
-
const url = `${env.API_PRESTAMO}v1/solicitud`;
|
|
151
|
-
return this.apiService.post(url, request);
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
getOfertas(idSolicitud: number): Observable<IResponsePayload<IPayloadListG<Oferta>>> {
|
|
155
|
-
const params = requestFilter({ idSolicitud });
|
|
156
|
-
const url = `${env.API_PRESTAMO}v1/solicitud/listar-ofertas?${params}`;
|
|
157
|
-
return this.apiService.get(url);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
No usar `HttpClient` directamente en services de presentación.
|
|
163
|
-
|
|
164
|
-
## Environments
|
|
165
|
-
|
|
166
|
-
URLs de API se configuran en environment files:
|
|
167
|
-
|
|
168
|
-
```typescript
|
|
169
|
-
export const environment = {
|
|
170
|
-
production: false,
|
|
171
|
-
API_PRESTAMO: '',
|
|
172
|
-
API_SOLICITUD: '',
|
|
173
|
-
API_IDENTIDAD: '',
|
|
174
|
-
API_MOTOR: '',
|
|
175
|
-
};
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
Archivos: `environment.ts`, `environment.dev.ts`, `environment.prod.ts`
|
|
179
|
-
|
|
180
|
-
## Build y verificación
|
|
181
|
-
|
|
182
|
-
- Build producción: `npm run build:prod` (equivale a `ng build -c=production`)
|
|
183
|
-
- Build desarrollo: `npm run build:dev` (equivale a `ng build -c=development`)
|
|
184
|
-
- Serve local: `npm run start:dev`
|
|
185
|
-
- Tests: `ng test --watch=false`
|
|
186
|
-
- Estilos: SCSS
|
|
187
|
-
- UI: Angular Material + Bootstrap
|
|
188
|
-
|
|
189
|
-
## Formularios reactivos
|
|
190
|
-
|
|
191
|
-
Patrones al trabajar con `FormGroup` / `FormControl` en mantenimientos CRUD. Para los principios de UX (cuándo usar switch vs checkbox, layout de cards, hints en combos), ver skill `frontend-design`.
|
|
192
|
-
|
|
193
|
-
### Combo dependiente con carga diferida
|
|
194
|
-
|
|
195
|
-
Cuando el valor del combo B depende del valor del combo A, suscribirse a `valueChanges` de A en `ngOnInit`:
|
|
196
|
-
|
|
197
|
-
```typescript
|
|
198
|
-
this.formMantenimiento.get('idPadre')?.valueChanges.subscribe((valor) => {
|
|
199
|
-
this.formMantenimiento.get('idHijo')?.setValue('');
|
|
200
|
-
if (valor) {
|
|
201
|
-
this.listarHijos(String(valor));
|
|
202
|
-
} else {
|
|
203
|
-
this.lstHijos = [];
|
|
204
|
-
}
|
|
205
|
-
});
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
Al editar, la **precarga inicial** debe setear padre e hijo **sin** disparar el listener (para no perder el valor de hijo que viene del backend):
|
|
209
|
-
|
|
210
|
-
```typescript
|
|
211
|
-
this.formMantenimiento.patchValue({
|
|
212
|
-
idPadre: data.idPadre != null ? String(data.idPadre) : '',
|
|
213
|
-
idHijo: data.idHijo != null ? String(data.idHijo) : ''
|
|
214
|
-
}, { emitEvent: false });
|
|
215
|
-
|
|
216
|
-
if (data.idPadre) {
|
|
217
|
-
this.listarHijos(String(data.idPadre));
|
|
218
|
-
}
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
### Normalización de tipos en controles compartidos
|
|
222
|
-
|
|
223
|
-
Componentes custom tipo `search-select` o equivalentes suelen comparar opciones con `===`. Si las opciones tienen `value: "1"` (string) pero el DTO trae `1` (number), la opción **no matchea** y el combo queda vacío.
|
|
224
|
-
|
|
225
|
-
Regla: normalizar consistentemente en el `patchValue`. La forma que expone el componente UI manda:
|
|
226
|
-
|
|
227
|
-
```typescript
|
|
228
|
-
this.formMantenimiento.patchValue({
|
|
229
|
-
idRol: data.idRol != null ? String(data.idRol) : ''
|
|
230
|
-
}, { emitEvent: false });
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
Aplicar la misma regla a todos los campos tipo id. Documentar la decisión si no es obvia.
|
|
234
|
-
|
|
235
|
-
### Sincronizaciones secuenciales con `concat`
|
|
236
|
-
|
|
237
|
-
Cuando N operaciones HTTP deben correr **en orden estricto** (evitar race conditions contra restricciones de unicidad del backend), usar `concat` de RxJS, no paralelo:
|
|
238
|
-
|
|
239
|
-
```typescript
|
|
240
|
-
import { concat, of } from 'rxjs';
|
|
241
|
-
import { toArray } from 'rxjs/operators';
|
|
242
|
-
|
|
243
|
-
const ops = [
|
|
244
|
-
...paraDesactivar.map(r => this.servicio.desactivar(r.id)),
|
|
245
|
-
...(nuevoRequerido ? [this.servicio.asignar(nuevo)] : [])
|
|
246
|
-
];
|
|
247
|
-
return ops.length ? concat(...ops).pipe(toArray()) : of([]);
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
Orden: primero desactivar los sobrantes, luego asignar el nuevo. Nunca paralelo en estos casos.
|
|
251
|
-
|
|
252
|
-
### Switch Bootstrap alineado
|
|
253
|
-
|
|
254
|
-
Patrón de clases para que el switch (3em×1.5em) quede alineado verticalmente con su label:
|
|
255
|
-
|
|
256
|
-
```html
|
|
257
|
-
<div class="form-switch d-flex align-items-center gap-2 ps-0 mb-0">
|
|
258
|
-
<input type="checkbox" class="form-check-input m-0" role="switch" id="mi-switch"
|
|
259
|
-
[checked]="activo" (change)="toggle($event)">
|
|
260
|
-
<label class="form-check-label mb-0" for="mi-switch">Texto del switch</label>
|
|
261
|
-
</div>
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
Claves: `d-flex align-items-center gap-2` (alinea), `ps-0` (anula padding-left 1.5em default de `.form-check`), `input.m-0` y `label.mb-0` (anulan márgenes que desalinean con el switch grande).
|
|
265
|
-
|
|
266
|
-
Para la decisión UX **cuándo usar switch vs checkbox**, ver skill `frontend-design` (`references/form-patterns.md` §5).
|