@tacuchi/agent-workflow-cli 11.0.1 → 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 +14 -42
- package/dist/application/project-tab-data.d.ts.map +1 -1
- package/dist/application/project-tab-data.js +27 -113
- 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 -471
- 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 -181
- 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 -94
- package/skills/agent-workflow/workflows/design-workflow/SKILL.md +0 -79
- package/skills/agent-workflow/workflows/dev-workflow/SKILL.md +0 -172
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan-exec-loop
|
|
3
|
+
description: >-
|
|
4
|
+
Ejecuta un plan de implementación (docs/plans/PPP-plan.md) como living doc: lo
|
|
5
|
+
lee y actualiza fase a fase mientras edita el código real, gestiona BD y git.
|
|
6
|
+
Heir del chasis spec-refine-loop: reusa su motor gap-driven (aplicado dentro
|
|
7
|
+
de una tarea ante decisiones/dudas no obvias), research on-demand con regla BD
|
|
8
|
+
read-only, AskUserQuestion con ≤3 tabs de contenido + 1 tab flow
|
|
9
|
+
(Compactar/Cerrar) siempre, y compact/resume con Cerrar que persiste CHECKPOINT
|
|
10
|
+
+ BACKLOG. Sus deltas: una exec session por fase (resume intra-fase); git
|
|
11
|
+
seguro (verifica rama esperada antes de editar, propone commits por fuente,
|
|
12
|
+
nunca push/--amend/--no-verify); la IA NUNCA ejecuta DML/DDL (migraciones se
|
|
13
|
+
redactan en SCRIPTS.sql, solo read-only se ejecuta); validación por fase y
|
|
14
|
+
final (lo dependiente de migración no aplicada se difiere como handoff a DBA);
|
|
15
|
+
y SIN auto-export (escribe solo docs/plans + docs/tools; el resto queda como
|
|
16
|
+
artefacto de session para export-*). Compone git, coding-standards, testing,
|
|
17
|
+
tools y sql. Lo arranca /w:plan-exec y es reanudable. Invocar para implementar
|
|
18
|
+
un plan ya generado.
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# plan-exec-loop
|
|
22
|
+
|
|
23
|
+
> **Heir** del chasis [`spec-refine-loop`](../spec-refine-loop/SKILL.md). Aquí los **deltas de ejecución** — el trabajo real: código, BD, git. El motor (gap-driven, research on-demand, AskUserQuestion + tab `flow`, compact/resume, `Cerrar` persiste) vive en el chasis.
|
|
24
|
+
|
|
25
|
+
## Flow
|
|
26
|
+
PLANIFICATION
|
|
27
|
+
|
|
28
|
+
## Layer
|
|
29
|
+
2 — la IA lo corre entero.
|
|
30
|
+
|
|
31
|
+
## Started by
|
|
32
|
+
`/w:plan-exec` — **reanudable** (mismo mecanismo de 4 casos del chasis; aquí con resume intra-fase, ver Delta 1).
|
|
33
|
+
|
|
34
|
+
## Reads
|
|
35
|
+
`docs/plans/PPP-plan.md`
|
|
36
|
+
|
|
37
|
+
## Writes
|
|
38
|
+
- `docs/plans/PPP-plan.md` (**read/update**, living doc: estado de fases/tareas, `Open questions`).
|
|
39
|
+
- `docs/tools/`: herramientas/utilidades reusables que la IA **crea** durante la ejecución (salida directa, no export).
|
|
40
|
+
- Artefactos de exec session en `.workflow/sessions/` (`SCRIPTS.sql`, `DECISION`, …).
|
|
41
|
+
- **NO** escribe en otras carpetas `docs/` ni **gradúa/exporta** otros artefactos automáticamente (ver *Boundary*).
|
|
42
|
+
|
|
43
|
+
## Boundary — sin auto-export (hard rule)
|
|
44
|
+
|
|
45
|
+
Este loop **nunca gradúa/promueve artefactos** a `docs/`. Las únicas carpetas `docs/` que escribe son **`docs/plans`** (el plan, living) y **`docs/tools`** (las herramientas que crea — salida directa, no un export). Todo lo demás (migraciones → `docs/scripts`, manuales → `docs/manuals`, diagramas → `docs/diagrams`, etc.) lo hacen skills **`export-*`** aparte, como paso explícito posterior. Los artefactos quedan en sus sessions hasta entonces.
|
|
46
|
+
|
|
47
|
+
## Inherits
|
|
48
|
+
|
|
49
|
+
Del chasis [`spec-refine-loop`](../spec-refine-loop/SKILL.md), sin cambios:
|
|
50
|
+
|
|
51
|
+
- Motor **gap-driven** (aplica *dentro de una tarea* ante una decisión/duda no obvia: research session ó AskUserQuestion).
|
|
52
|
+
- **AskUserQuestion**: ≤3 contenido + 1 `flow` (`Compactar`/`Cerrar`) siempre.
|
|
53
|
+
- **research session** on-demand + **regla BD** read-only (pregunta MCP si >1 sin default → `SCRIPTS.sql` → ejecuta read-only) + research **inconclusa** (degrada/difiere, límite `MAX`).
|
|
54
|
+
- **Compact/resume**; **`Cerrar` persiste** `CHECKPOINT` + `BACKLOG`.
|
|
55
|
+
|
|
56
|
+
## Composes
|
|
57
|
+
|
|
58
|
+
`git` (rama segura + commits propuestos) · `coding-standards` (cambio mínimo, estilo de la fuente) · `testing` (validación) · `tools` (herramientas reusables → `docs/tools`) · `sql` (regla BD) · `writing`. Todas resueltas por `.workflow/skills.toml`; `off` → el loop sigue sin la capacidad y, si era necesaria, lo dice o pregunta.
|
|
59
|
+
|
|
60
|
+
## Internal sessions (managed)
|
|
61
|
+
|
|
62
|
+
- **control session** `<plan>-plan-exec`: dueña del run (`SESSION` + `CHECKPOINT` + `BACKLOG` al cerrar; Type = `control`).
|
|
63
|
+
- **exec session por fase** `<plan>-exec-phase-<N>`: `SESSION` · `DECISION` · `SCRIPTS.sql` · `CHECKPOINT` (Type = `exec`).
|
|
64
|
+
- **research session** `<plan>-research-*`: on-demand (run-and-close), igual que el chasis.
|
|
65
|
+
|
|
66
|
+
## Delta 1 — **One exec session per phase** (+ resume intra-fase)
|
|
67
|
+
|
|
68
|
+
- Recorre las `Phases` del plan en orden (respeta deps).
|
|
69
|
+
- Por cada Phase no completada → `create_or_resume(<plan>-exec-phase-<N>)` (**reusa** la session si la fase quedó a medias; no crea una segunda).
|
|
70
|
+
- Ejecuta las `Tasks` de la fase; **salta** las ya marcadas `- [x]` en el plan (el plan-doc es la fuente de verdad por tarea). Marca `- [x]` + estado **en el plan** (living doc; no en un `TASKS` aparte).
|
|
71
|
+
- Registra `DECISION` solo lo **no obvio**.
|
|
72
|
+
|
|
73
|
+
## Delta 2 — Git policy: **rama segura + commits propuestos**
|
|
74
|
+
|
|
75
|
+
- **Antes de editar** archivos de una fuente: verifica rama actual = rama esperada de esa fuente (estilo `branch-check`). Si no coincide → **pausa y resuelve con el humano**; nunca `stash`/`reset --hard`/`checkout -- .`/`clean` sin confirmación por fuente.
|
|
76
|
+
- **Al cerrar una fase** (o al `Cerrar`): **propone commits por fuente** (propose-then-execute, aprobar antes); nunca `push`/`--amend`/`--no-verify`.
|
|
77
|
+
- **Commit rechazado**: los cambios **quedan en el working tree** (no se revierten). Se permite reproponer / editar mensaje. Se registra en `CHECKPOINT` + `BACKLOG` que la fase quedó **sin commitear** (reanudable).
|
|
78
|
+
- **Precondición entre fases**: `branch-check` valida *identidad* de rama, **no** *limpieza* del working tree. Antes de iniciar la exec session de la siguiente fase, el working tree de cada fuente debe estar **limpio** (committeado) o explícitamente **reconocido** como "cambios sin commitear de la fase N" — para no co-mezclar dos fases en un mismo commit.
|
|
79
|
+
|
|
80
|
+
## Delta 3 — DB policy: **la IA nunca ejecuta DML**
|
|
81
|
+
|
|
82
|
+
Distinción por **ejecución**, no por archivo (ver el esquema `SCRIPTS.sql`):
|
|
83
|
+
|
|
84
|
+
- **Consultas read-only** (diagnóstico/validación) → `SCRIPTS.sql` (artefacto de la session); la IA **sí** las ejecuta read-only vía MCP (`sql-mutation-guard`).
|
|
85
|
+
- **Migraciones DDL/DML** (cambios de esquema/datos) → la IA las **redacta en `SCRIPTS.sql`** (artefacto de la session) pero **NUNCA las ejecuta**.
|
|
86
|
+
|
|
87
|
+
> El SQL mutante **queda en la session**, no se mueve a `docs/`. Su promoción a `docs/scripts/` (forward + rollback) la hace un `export-*` **aparte**, no este loop.
|
|
88
|
+
|
|
89
|
+
## Delta 4 — Validation
|
|
90
|
+
|
|
91
|
+
- Tras ejecutar (por fase y al final): corre tests/checks contra `Validations` + `Final behavior` + acceptance/success criteria del spec.
|
|
92
|
+
- Validación que **corre y falla** → vuelve a la tarea (gap); no avanza.
|
|
93
|
+
- **Validación dependiente de una migración no aplicada**: como la IA no ejecuta el DML, **no puede correr read-only** → se **difiere** (handoff a DBA), **no bloquea el avance**. Se registra en `Open questions` del plan + `BACKLOG`, marcando "verificación pendiente tras aplicar SQL". (Reusa el patrón degradar/diferir + límite `MAX` del chasis → evita el bucle "vuelve a la tarea".)
|
|
94
|
+
|
|
95
|
+
## Delta 5 — Completitud / cierre
|
|
96
|
+
|
|
97
|
+
- Una fase cierra **done** cuando sus tareas están `- [x]` y su validación pasó **o** quedó diferida (handoff de SQL). Estado posible: **"done — SQL pendiente de aplicar"**.
|
|
98
|
+
- Todas las fases done → `AskUserQuestion` final (contenido: `Marcar plan done` / `Preguntar algo más`; flow: `Compactar`/`Cerrar`).
|
|
99
|
+
- **Sin export automático**: los artefactos (`SCRIPTS.sql`, `DECISION`, …) quedan en sus sessions. Promoverlos a `docs/` (scripts, manuals, …) es un paso aparte vía `export-*`.
|
|
100
|
+
|
|
101
|
+
## Sequence
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
plan-exec-loop(PPP-plan.md):
|
|
105
|
+
control = create_or_resume(<plan>-plan-exec) # CHECKPOINT, resume
|
|
106
|
+
plan = read(PPP-plan.md)
|
|
107
|
+
para cada Phase en plan (en orden, respeta deps):
|
|
108
|
+
si Phase done: skip
|
|
109
|
+
es = create_or_resume(<plan>-exec-phase-<N>) # reusa si quedó a medias
|
|
110
|
+
para cada Task de la Phase:
|
|
111
|
+
si Task - [x] en el plan: skip # resume intra-fase
|
|
112
|
+
verificar rama esperada por fuente (branch-check)
|
|
113
|
+
si no coincide → pausar + resolver con humano
|
|
114
|
+
ejecutar Task:
|
|
115
|
+
editar código en las fuentes (cambio mínimo)
|
|
116
|
+
si crea herramienta/utilidad reusable → docs/tools (salida directa)
|
|
117
|
+
si consulta BD read-only → SCRIPTS.sql + ejecutar read-only
|
|
118
|
+
si cambio BD (DDL/DML) → redactar en SCRIPTS.sql (artefacto session, NO ejecutar)
|
|
119
|
+
si decisión no obvia → DECISION
|
|
120
|
+
si duda/gap → research session ó AskUserQuestion # chasis
|
|
121
|
+
marcar Task - [x] + estado EN EL PLAN
|
|
122
|
+
validación de la fase:
|
|
123
|
+
la que corre y falla → volver a la tarea
|
|
124
|
+
la dependiente de migración no aplicada → diferir (Open questions + BACKLOG)
|
|
125
|
+
proponer commit(s) por fuente (aprobar antes) # nunca push/amend/--no-verify
|
|
126
|
+
si rechazado → cambios quedan; registrar "fase sin commitear"
|
|
127
|
+
precondición siguiente fase: working tree limpio o reconocido
|
|
128
|
+
es.close_and_report()
|
|
129
|
+
validación final (lo que se pueda; lo dependiente de SQL queda como handoff)
|
|
130
|
+
AskUserQuestion(contenido: [Marcar plan done, Preguntar algo más], flow: [Compactar, Cerrar])
|
|
131
|
+
marcar plan done (o "done — SQL pendiente de aplicar")
|
|
132
|
+
# NO export: los artefactos quedan en sessions; un export-* los promueve aparte
|
|
133
|
+
finalize: CHECKPOINT + BACKLOG + cerrar sessions + reportar
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
```mermaid
|
|
137
|
+
flowchart TD
|
|
138
|
+
S["create_or_resume control session<br/>read PPP-plan.md"] --> P{"¿más Phases<br/>(no done)?"}
|
|
139
|
+
P -->|no| V2["validación final<br/>(dep. de SQL → handoff)"]
|
|
140
|
+
P -->|sí| ES["create_or_resume exec session (Phase N)"]
|
|
141
|
+
ES --> T{"¿Task pendiente<br/>(no - [x])?"}
|
|
142
|
+
T -->|sí| G["branch-check por fuente"]
|
|
143
|
+
G -->|rama ok| DO["editar código · read-only→SCRIPTS.sql<br/>migración DDL/DML→SCRIPTS.sql (no ejecuta) · DECISION"]
|
|
144
|
+
G -->|rama ≠| PA["pausar + resolver con humano"]
|
|
145
|
+
PA --> G
|
|
146
|
+
DO --> MK["marcar Task - [x] en el PLAN"]
|
|
147
|
+
MK --> T
|
|
148
|
+
T -->|no| VP["validación de fase<br/>(falla→tarea · dep. SQL→diferir)"]
|
|
149
|
+
VP --> CM["proponer commits por fuente"]
|
|
150
|
+
CM -->|aprobado| CL["cerrar exec session + reportar"]
|
|
151
|
+
CM -->|rechazado| RJ["cambios quedan · registrar 'sin commitear'"]
|
|
152
|
+
RJ --> CL
|
|
153
|
+
CL --> P
|
|
154
|
+
V2 --> FIN["AskUserQuestion[Marcar plan done · Preguntar más]<br/>plan done (sin auto-export)"]
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Convergence / exit
|
|
158
|
+
|
|
159
|
+
- Plan completo + validación OK (o diferida con handoff) → `Marcar plan done`.
|
|
160
|
+
- `Cerrar` (tab flow, en cualquier momento) → `finalize` persiste `CHECKPOINT` + `BACKLOG` (qué quedó sin ejecutar / sin commitear / sin aplicar), cierra sessions, reporta.
|
|
161
|
+
- La promoción de artefactos a `docs/` (vía `export-*`) es **siempre** un paso posterior y explícito, fuera de este loop.
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan-new-loop
|
|
3
|
+
description: >-
|
|
4
|
+
Genera un plan de implementación rico (docs/plans/PPP-plan.md) a partir de un
|
|
5
|
+
spec refinado (docs/specs/NNN-spec-refined.md). Heir del chasis
|
|
6
|
+
spec-refine-loop: reusa íntegro su motor gap-driven convergente, sus sessions
|
|
7
|
+
internas (control + research on-demand), AskUserQuestion con ≤3 tabs de
|
|
8
|
+
contenido + 1 tab flow (Compactar/Cerrar) siempre presente, research autónomo
|
|
9
|
+
con regla BD read-only, y compact/resume con Cerrar que persiste CHECKPOINT +
|
|
10
|
+
BACKLOG. Sus deltas: el plan absorbe inline el nivel TECHNICAL-NOTE
|
|
11
|
+
(Solution/Impacted/AS-IS/TO-BE/Validations…) + Phases/Tasks con estado vivo;
|
|
12
|
+
el research aquí mapea código/impacto (componentes FE/BE/BD, wiring AS-IS,
|
|
13
|
+
dependencias); y una gap taxonomy propia de planificación. Lo arranca el
|
|
14
|
+
comando /w:plan-new y es reanudable. Invocar cuando un spec ya refinado deba
|
|
15
|
+
convertirse en un plan ejecutable antes de implementar.
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# plan-new-loop
|
|
19
|
+
|
|
20
|
+
> **Heir** del chasis [`spec-refine-loop`](../spec-refine-loop/SKILL.md). Aquí **solo** los deltas. El motor (gap-driven, sessions, AskUserQuestion + tab `flow`, research autónomo + regla BD, compact/resume, `Cerrar` persiste) vive en el chasis — no se repite.
|
|
21
|
+
|
|
22
|
+
## Flow
|
|
23
|
+
PLANIFICATION
|
|
24
|
+
|
|
25
|
+
## Layer
|
|
26
|
+
2 — la IA lo corre entero.
|
|
27
|
+
|
|
28
|
+
## Started by
|
|
29
|
+
`/w:plan-new` — **reanudable** (mismo mecanismo de 4 casos que el chasis).
|
|
30
|
+
|
|
31
|
+
## Reads
|
|
32
|
+
`docs/specs/NNN-spec-refined.md`
|
|
33
|
+
|
|
34
|
+
## Writes
|
|
35
|
+
`docs/plans/PPP-plan.md` (`generate`; **sobrescribe con confirmación** si existe). Solo escribe `docs/plans` — nunca otras carpetas `docs/` ni auto-export.
|
|
36
|
+
|
|
37
|
+
## Inherits
|
|
38
|
+
|
|
39
|
+
Del chasis [`spec-refine-loop`](../spec-refine-loop/SKILL.md), sin cambios:
|
|
40
|
+
|
|
41
|
+
- Motor **gap-driven convergente** (`detect_gaps` → resolver → integrar → repetir; gaps agotados con límite `MAX` no se re-disparan).
|
|
42
|
+
- **Sessions internas**: `control` (`<plan>-plan-new`: `SESSION` + `CHECKPOINT`, + `BACKLOG` al cerrar; Type = `refine`/`control`) + `research` on-demand (run-and-close, puede cerrar inconclusa).
|
|
43
|
+
- **AskUserQuestion**: ≤3 tabs de contenido + 1 tab `flow` (`Compactar`/`Cerrar`) siempre.
|
|
44
|
+
- **Ask-vs-research rule** + **research autónomo** + **regla BD** (pregunta MCP si >1 sin default → queries a `SCRIPTS.sql` → ejecuta read-only, `sql-mutation-guard`) + manejo de research **inconclusa** (degrada a humano / difiere a `Open questions` + límite `MAX`).
|
|
45
|
+
- **Compact / resume** (4 casos) y **`Cerrar` persiste** `CHECKPOINT` + `BACKLOG`.
|
|
46
|
+
- **Naming** `<run>` para sessions hijas: `<plan>-plan-new` → `<plan>-research-*`.
|
|
47
|
+
|
|
48
|
+
## Delta 1 — Deliverable: PLAN RICO (`PPP-plan.md`)
|
|
49
|
+
|
|
50
|
+
El plan absorbe el nivel `TECHNICAL-NOTE` **inline** (decisión del usuario) + roadmap:
|
|
51
|
+
|
|
52
|
+
```markdown
|
|
53
|
+
# Plan PPP — <slug>
|
|
54
|
+
|
|
55
|
+
> Derivado de docs/specs/NNN-spec-refined.md · generado por plan-new-loop
|
|
56
|
+
|
|
57
|
+
## Origin spec fuente (o prompt, si se bootstrapeó vía spec-new)
|
|
58
|
+
## Summary el cómo, en 1–2 frases
|
|
59
|
+
## Solution explicación técnica/funcional de cómo se implementará
|
|
60
|
+
## Impacted FE · BE · BD (esquemas/tablas/funciones) · APIs · integraciones
|
|
61
|
+
## Dependencies docs / fuentes / bases / sesiones
|
|
62
|
+
## Current state (AS-IS) wiring actual (interfaces y métodos), resumido
|
|
63
|
+
## Target state (TO-BE) wiring objetivo
|
|
64
|
+
## Final behavior cómo se comporta el flujo al final (alineado con criterios del spec)
|
|
65
|
+
## Phases fases agrupadoras (complejidad XS–S)
|
|
66
|
+
## Tasks tareas por fase (≤XS), con deps y estado vivo (- [ ])
|
|
67
|
+
## Validations validaciones / restricciones / lógica de negocio
|
|
68
|
+
## Risks / impact riesgos e impactos técnicos
|
|
69
|
+
## Assumptions supuestos
|
|
70
|
+
## Estimated time sizing XS–XL (desarrollo + pruebas internas)
|
|
71
|
+
## Open questions pendientes
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
> **Implicación de catálogo:** `TECHNICAL-NOTE` deja de ser artefacto de exec session y se vuelve **secciones del plan-doc**. Reconciliado en [`plan-exec-loop`](../plan-exec-loop/SKILL.md): la exec session por fase **no** lleva `TECHNICAL-NOTE` ni `TASKS` propios; el detalle técnico y el progreso viven inline en el plan-doc (living).
|
|
75
|
+
|
|
76
|
+
## Delta 2 — Gap taxonomy (de "plan")
|
|
77
|
+
|
|
78
|
+
Reemplaza la gap taxonomy de spec por una orientada a planificación:
|
|
79
|
+
|
|
80
|
+
| Gap | Signal | Resolved by |
|
|
81
|
+
|---|---|---|
|
|
82
|
+
| Approach/Solution sin definir | el cómo es vago | research / humano |
|
|
83
|
+
| Componentes sin identificar | impacto FE/BE/BD desconocido | **research** (mapea el código) |
|
|
84
|
+
| Wiring AS-IS desconocido | no se sabe el estado actual | **research** |
|
|
85
|
+
| Fase muy grande | complejidad > S | humano (re-partir) |
|
|
86
|
+
| Tarea no atómica | complejidad > XS | la IA re-parte |
|
|
87
|
+
| Deps faltantes | orden no claro | research / humano |
|
|
88
|
+
| Criterios del spec sin cubrir | tareas no trazan a acceptance criteria | la IA deriva + humano confirma |
|
|
89
|
+
| Riesgos sin atender | — | humano |
|
|
90
|
+
|
|
91
|
+
## Delta 3 — What research investigates here
|
|
92
|
+
|
|
93
|
+
El research del chasis se especializa: mapear **código/impacto** — componentes FE/BE/BD afectados, wiring AS-IS, dependencias. Alimenta las secciones `Solution`, `Impacted`, `Current state (AS-IS)`. La regla BD del chasis aplica igual (queries read-only a `SCRIPTS.sql`, MCP elegido vía tab de contenido si >1 sin default).
|
|
94
|
+
|
|
95
|
+
## Convergence / exit
|
|
96
|
+
|
|
97
|
+
Sin gaps materiales → `AskUserQuestion` (contenido: `Guardar plan` / `Preguntar algo más`; flow: `Compactar`/`Cerrar`) → al `Guardar`, escribe `docs/plans/PPP-plan.md` (con confirmación si existe) → `finalize` (persiste `CHECKPOINT` + `BACKLOG`, cierra sessions, reporta). `Cerrar` en cualquier momento → `finalize` igual.
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: quick-loop
|
|
3
|
+
description: >-
|
|
4
|
+
El atajo liviano de agent-workflow: resuelve una tarea acotada (un fix, un
|
|
5
|
+
ajuste pequeño) directamente desde el prompt del usuario, editando código con
|
|
6
|
+
ceremonia mínima. Heir del chasis spec-refine-loop (motor gap-driven mínimo,
|
|
7
|
+
research on-demand con regla BD read-only, AskUserQuestion con ≤3 tabs de
|
|
8
|
+
contenido + 1 tab flow Compactar/Cerrar siempre, compact/resume con Cerrar que
|
|
9
|
+
persiste CHECKPOINT + BACKLOG) y de plan-exec-loop (git seguro: rama esperada
|
|
10
|
+
antes de editar + commit propuesto, nunca push/--amend/--no-verify; la IA
|
|
11
|
+
nunca ejecuta DML, migraciones a SCRIPTS.sql; sin auto-export). Sus deltas: sin
|
|
12
|
+
fases ni plan-doc (el prompt ES la tarea), una sola session ligera
|
|
13
|
+
(<slug>-quick), un solo commit; y escalación con handoff si la tarea crece
|
|
14
|
+
(propone subir a SPEC/PLAN dejando el código a medias como contexto). NO toca
|
|
15
|
+
docs/. Lo arranca /w:quick y es reanudable. Invocar para cambios pequeños y
|
|
16
|
+
directos que no ameritan spec ni plan formal.
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# quick-loop
|
|
20
|
+
|
|
21
|
+
> **Heir** del chasis [`spec-refine-loop`](../spec-refine-loop/SKILL.md) + las políticas de ejecución de [`plan-exec-loop`](../plan-exec-loop/SKILL.md). Aquí **solo** los deltas de QUICK.
|
|
22
|
+
|
|
23
|
+
## Flow
|
|
24
|
+
QUICK
|
|
25
|
+
|
|
26
|
+
## Layer
|
|
27
|
+
2 — la IA lo corre entero (loop mínimo).
|
|
28
|
+
|
|
29
|
+
## Started by
|
|
30
|
+
`/w:quick` — **reanudable** (mismo mecanismo de resume del chasis).
|
|
31
|
+
|
|
32
|
+
## Reads
|
|
33
|
+
— (el prompt del usuario; no hay documento de entrada).
|
|
34
|
+
|
|
35
|
+
## Writes
|
|
36
|
+
- Edita código en las fuentes (cambio mínimo).
|
|
37
|
+
- Artefactos de la session en `.workflow/sessions/`.
|
|
38
|
+
- **NO toca `docs/`** (sin doc, sin auto-export).
|
|
39
|
+
|
|
40
|
+
## Internal session
|
|
41
|
+
|
|
42
|
+
- **SIEMPRE** crea una session ligera `<slug>-quick` (Type = `quick`, ≈ `exec`): `SESSION` · `DECISION` · `SCRIPTS.sql` · `CHECKPOINT` (+ `BACKLOG` al cerrar). Una sola session (no exec-por-fase).
|
|
43
|
+
|
|
44
|
+
## Inherits
|
|
45
|
+
|
|
46
|
+
- del **chasis** [`spec-refine-loop`](../spec-refine-loop/SKILL.md): gap-driven (mínimo), `AskUserQuestion` ≤3 + `flow` (`Compactar`/`Cerrar`), `research` on-demand + regla BD read-only (pregunta MCP si >1 sin default → `SCRIPTS.sql` → ejecuta read-only), compact/resume, `Cerrar` persiste `CHECKPOINT`+`BACKLOG`.
|
|
47
|
+
- de [`plan-exec-loop`](../plan-exec-loop/SKILL.md): **git** (rama segura antes de editar + commit propuesto; nunca `push`/`--amend`/`--no-verify`), **BD** (la IA nunca ejecuta DML; migraciones → `SCRIPTS.sql` de la session), **sin auto-export** (no toca otras carpetas `docs/`).
|
|
48
|
+
|
|
49
|
+
## Composes
|
|
50
|
+
|
|
51
|
+
`git` · `coding-standards` · `testing` (validación puntual) · `sql` (regla BD) · `writing` · `research`. Resueltas por `.workflow/skills.toml`.
|
|
52
|
+
|
|
53
|
+
## Delta QUICK — minimal ceremony
|
|
54
|
+
|
|
55
|
+
- **Sin fases, sin plan-doc**: el prompt **es** la tarea (una sola unidad). No hay roadmap.
|
|
56
|
+
- **Una sola session** (no exec-por-fase). **Un solo commit** propuesto al final.
|
|
57
|
+
- **Escalación + handoff**: si la tarea crece (muchos archivos / ≥2 fuentes / necesita arquitectura) → propone subir a **SPEC/PLAN**. Si el usuario acepta:
|
|
58
|
+
- el **código ya editado queda** en el working tree (no se revierte) **y se registra** en `CHECKPOINT` + `BACKLOG` ("cambios sin commitear en `<fuente>` — código a medias; decidir commit/descartar al retomar") — reusando **ambas** mitades del patrón "commit rechazado" de plan-exec (no revertir **y** registrar lo sin commitear). Crítico en la rama **SPEC**, que no retoma el working tree;
|
|
59
|
+
- la session quick va a `finalize`, persistiendo `CHECKPOINT` + `BACKLOG` con un **puntero** al spec/plan sembrado (Followups: "escalado a `docs/specs/NNN` o `docs/plans/PPP` — retomar ahí");
|
|
60
|
+
- los artefactos (`DECISION`, `SCRIPTS.sql`) **quedan en la session quick** como contexto referenciable por la nueva session (no se migran);
|
|
61
|
+
- **asimetría**: escalar a **PLAN** puede **absorber** el avance (plan-exec retoma el working tree existente); escalar a **SPEC** **reinicia** el ciclo de diseño y trata el código a medias como **contexto/referencia**, no como trabajo ya ingerido.
|
|
62
|
+
|
|
63
|
+
## Sequence
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
quick-loop(prompt):
|
|
67
|
+
s = create_or_resume(<slug>-quick) # siempre session ligera
|
|
68
|
+
trabajar la tarea (loop mínimo):
|
|
69
|
+
verificar rama esperada por fuente (branch-check); si no → pausar + resolver
|
|
70
|
+
editar código (cambio mínimo)
|
|
71
|
+
si consulta BD read-only → SCRIPTS.sql + ejecutar read-only
|
|
72
|
+
si cambio BD (DDL/DML) → SCRIPTS.sql (artefacto session, NO ejecutar)
|
|
73
|
+
si decisión no obvia → DECISION
|
|
74
|
+
si duda/gap → research session ó AskUserQuestion # chasis
|
|
75
|
+
si la tarea CRECE → proponer escalar a SPEC/PLAN
|
|
76
|
+
si acepta → handoff (código queda; BACKLOG→spec/plan sembrado) → goto finalize
|
|
77
|
+
validación puntual (test si aplica)
|
|
78
|
+
proponer commit (aprobar antes) # nunca push/amend/--no-verify
|
|
79
|
+
AskUserQuestion(contenido: [Cerrar tarea, Preguntar algo más], flow: [Compactar, Cerrar])
|
|
80
|
+
finalize: CHECKPOINT + BACKLOG (si queda algo) + cerrar session + reportar
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
```mermaid
|
|
84
|
+
flowchart TD
|
|
85
|
+
S["create_or_resume session <slug>-quick"] --> G["branch-check por fuente"]
|
|
86
|
+
G -->|ok| DO["editar código · BD→SCRIPTS.sql · DECISION<br/>(duda→research/AskUserQuestion)"]
|
|
87
|
+
G -->|rama ≠| PA["pausar + resolver"]
|
|
88
|
+
PA --> G
|
|
89
|
+
DO --> GROW{"¿la tarea creció?"}
|
|
90
|
+
GROW -->|sí| ESC["escalar a SPEC/PLAN<br/>código queda · BACKLOG→spec/plan sembrado"]
|
|
91
|
+
ESC --> FIN
|
|
92
|
+
GROW -->|no| V["validación puntual"]
|
|
93
|
+
V --> CM["proponer commit (aprobar)"]
|
|
94
|
+
CM --> Q["AskUserQuestion[Cerrar · Preguntar más]<br/>flow[Compactar · Cerrar]"]
|
|
95
|
+
Q --> FIN["finalize: CHECKPOINT + BACKLOG + cerrar"]
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Convergence / exit
|
|
99
|
+
|
|
100
|
+
- Tarea hecha + commit (o aprobado saltarlo) → `Cerrar`.
|
|
101
|
+
- `Cerrar`/`Compactar` (tab flow) → persiste `CHECKPOINT` + `BACKLOG` (reanudable).
|
|
102
|
+
- **Sin export**: nada va a `docs/`. Si algo amerita preservarse → se promueve aparte vía `export-*`, o se escala a SPEC/PLAN.
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-refine-loop
|
|
3
|
+
description: >-
|
|
4
|
+
El CHASIS de los loops de agent-workflow. Refina un spec borrador
|
|
5
|
+
(docs/specs/NNN-spec.md) hasta un spec refinado sin ambigüedad
|
|
6
|
+
(docs/specs/NNN-spec-refined.md) mediante un motor gap-driven convergente:
|
|
7
|
+
detecta huecos/ambigüedades, los resuelve preguntando al humano (lo que
|
|
8
|
+
depende de su intención) o investigando de forma autónoma vía sessions de
|
|
9
|
+
research (lo que se responde leyendo el repo/datos), integra y repite hasta
|
|
10
|
+
converger. Compone la capacidad ui-design (built-in ui-spec) cuando el
|
|
11
|
+
requerimiento involucra UI. Lo arranca el comando /w:spec-refine y es
|
|
12
|
+
reanudable (4 casos de resume). Usa AskUserQuestion con ≤3 tabs de contenido
|
|
13
|
+
+ 1 tab flow (Compactar/Cerrar) siempre presente; Cerrar persiste CHECKPOINT
|
|
14
|
+
+ BACKLOG. Es el patrón de referencia que heredan plan-new-loop,
|
|
15
|
+
plan-exec-loop y quick-loop. Invocar cuando haya que refinar/desambiguar una
|
|
16
|
+
especificación antes de planificar.
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# spec-refine-loop
|
|
20
|
+
|
|
21
|
+
> **El CHASIS.** Primer loop diseñado en detalle; patrón de referencia que heredan los demás loops (`plan-new-loop`, `plan-exec-loop`, `quick-loop`). Si editas el motor, edítalo aquí.
|
|
22
|
+
|
|
23
|
+
## Flow
|
|
24
|
+
SPEC
|
|
25
|
+
|
|
26
|
+
## Layer
|
|
27
|
+
2 — la IA lo corre entero (gap-driven). El usuario no conduce el ciclo; solo responde tabs de contenido y dirige el ciclo de vida por el tab `flow`.
|
|
28
|
+
|
|
29
|
+
## Started by
|
|
30
|
+
`/w:spec-refine` — **reanudable**. Detecta el estado previo y arranca según corresponda (ver *Compact / resume*, 4 casos).
|
|
31
|
+
|
|
32
|
+
## Reads
|
|
33
|
+
- `docs/specs/NNN-spec.md` (borrador), **o**
|
|
34
|
+
- `docs/specs/NNN-spec-refined.md` si **ya existe** un refinado previo → se re-refina incremental sobre el refined (NO sobre el borrador stale).
|
|
35
|
+
|
|
36
|
+
## Writes
|
|
37
|
+
`docs/specs/NNN-spec-refined.md` (cuando el usuario elige `Guardar especificación refinada`). Si el archivo **ya existe**, **sobrescribe con confirmación** del usuario.
|
|
38
|
+
|
|
39
|
+
> **Invariante de boundary:** este loop escribe **solo** en `docs/specs`. Nunca gradúa/exporta otros artefactos a `docs/` — eso es trabajo de `export-*`, aparte.
|
|
40
|
+
|
|
41
|
+
## Internal sessions (managed)
|
|
42
|
+
|
|
43
|
+
El loop crea y maneja sus sessions en `.workflow/sessions/`. El usuario nunca las crea.
|
|
44
|
+
|
|
45
|
+
| Session | When | Artifacts | Role |
|
|
46
|
+
|---|---|---|---|
|
|
47
|
+
| **refine session** `<spec>-spec-refine/` | al arrancar el loop (o se reanuda) | `SESSION.md` · `CHECKPOINT.md` (· `BACKLOG.md` al cerrar) | Dueña del run. Guarda el avance al `Compactar` y al `Cerrar`; habilita el resume. Type = `refine`. |
|
|
48
|
+
| **research session** `<run>-research-*/` | on-demand, por cada gap factual | `SESSION.md` · `ANALYSIS-FILE.md` → `CONCLUSIONS.md` (+ `SCRIPTS.sql` si consulta BD) | Investiga, concluye, **cierra y reporta**. Puede cerrar **inconclusa**. Type = `research`; on-demand, **no reanudable** (run-and-close, sin `CHECKPOINT`/`BACKLOG` propios). |
|
|
49
|
+
|
|
50
|
+
> El spec **nunca** entra en una session; vive en `docs/specs/`.
|
|
51
|
+
>
|
|
52
|
+
> `<run>` = id de la session dueña del loop padre, que prefija sus sessions hijas: `<spec>-spec-refine`, `<plan>-plan-new`, `<plan>-plan-exec`, `<slug>-quick`. Así el patrón de naming es exacto en cualquier flujo que herede este chasis.
|
|
53
|
+
|
|
54
|
+
**CLI** (asunción de naming; los subcomandos se implementan en paralelo — no bloquear):
|
|
55
|
+
- `aw session-create --type refine --name <spec>-spec-refine` / `aw session-resume --code <…>` (detecta `CHECKPOINT`).
|
|
56
|
+
- `aw session-create --type research --name <run>-research-<gap>` para cada gap factual.
|
|
57
|
+
- `aw checkpoint-write` / `aw checkpoint-read` para el resume.
|
|
58
|
+
- `aw session-close` al cerrar (con razón); `aw session-artifacts` para inspeccionar.
|
|
59
|
+
|
|
60
|
+
## Composes
|
|
61
|
+
|
|
62
|
+
Cuando el requerimiento involucra **UI**, compone la capacidad **`ui-design`** (default built-in `ui-spec`; rebindeable vía `.workflow/skills.toml`): autora el UI spec nativamente (esquema `Screen`, vocabulario, formato). El loop aporta la iteración/Q&A que el viejo servicio no tenía (design-system, tema, variantes, desambiguación) y lo integra como sección `## UI spec` del spec.
|
|
63
|
+
|
|
64
|
+
Otras capacidades transversales que el chasis usa siempre: `research` (research on-demand), `sql` (regla BD en research), `writing` (redacción del refined). Todas se resuelven por config; `off` → el loop sigue sin la capacidad y, si era necesaria, lo dice o pregunta.
|
|
65
|
+
|
|
66
|
+
## Deliverable schema (`NNN-spec-refined.md`)
|
|
67
|
+
|
|
68
|
+
Más rico que el borrador: mismas secciones **completadas** + dos nuevas (`Refinement decisions`, `Q&A traceability`).
|
|
69
|
+
|
|
70
|
+
```markdown
|
|
71
|
+
# Spec NNN (refined) — <slug>
|
|
72
|
+
|
|
73
|
+
> Derivado de `NNN-spec.md` · refinado por spec-refine-loop
|
|
74
|
+
|
|
75
|
+
## Requirement (afinado, sin ambigüedad)
|
|
76
|
+
## Context (completo)
|
|
77
|
+
## Scope (In / Out claros)
|
|
78
|
+
## Acceptance criteria (testables, - [ ])
|
|
79
|
+
## Assumptions (declarados)
|
|
80
|
+
|
|
81
|
+
## UI spec (opt. — si involucra UI; vía capacidad ui-design / skill ui-spec)
|
|
82
|
+
Screen (JSON) + render Markdown.
|
|
83
|
+
|
|
84
|
+
## Refinement decisions ← NEW
|
|
85
|
+
Qué se definió al refinar y por qué. Incluye lo resuelto vía research
|
|
86
|
+
(con referencia a la research session / CONCLUSIONS).
|
|
87
|
+
|
|
88
|
+
## Q&A traceability ← NEW
|
|
89
|
+
Cada duda preguntada al humano + la respuesta elegida.
|
|
90
|
+
|
|
91
|
+
## Open questions (idealmente "None"; lo que quede se difiere)
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Gap taxonomy (= weak sections of the schema)
|
|
95
|
+
|
|
96
|
+
`detect_gaps(work)` busca estas señales; cada una tiene un resolutor:
|
|
97
|
+
|
|
98
|
+
| Gap | Signal | Resolved by |
|
|
99
|
+
|---|---|---|
|
|
100
|
+
| Requirement vago | el qué/por qué ambiguo | **humano** |
|
|
101
|
+
| Context incompleto | sistemas/componentes sin identificar | **research** |
|
|
102
|
+
| Scope borroso | falta `Out`, o In/Out se solapan | **humano** |
|
|
103
|
+
| Criterios no testables | acceptance no verificable | **humano** (derivar + confirmar) |
|
|
104
|
+
| Open questions abiertas | dudas explícitas | según naturaleza |
|
|
105
|
+
| Supuestos ocultos | el spec asume cosas no dichas | **research** valida / **humano** confirma |
|
|
106
|
+
| Contradicción interna | secciones que se contradicen | **humano** |
|
|
107
|
+
|
|
108
|
+
## Ask-vs-research rule (el discriminador)
|
|
109
|
+
|
|
110
|
+
Para cada gap, una sola pregunta decide el resolutor:
|
|
111
|
+
|
|
112
|
+
> *"¿Puedo responder esto leyendo el repo/datos?"* → **research** (autónomo).
|
|
113
|
+
> *"¿Depende de lo que el usuario quiere?"* → **preguntar al humano** (AskUserQuestion).
|
|
114
|
+
|
|
115
|
+
## Research: autonomy, scope & failure
|
|
116
|
+
|
|
117
|
+
- **Autónomo**: la IA crea la research session, investiga y reporta **sin pedir permiso**. El humano se entera al integrarse (en `Refinement decisions`) y mantiene control vía el tab `flow`.
|
|
118
|
+
- **Alcance**: workspace + repos asociados (fuentes) + MCPs de BD.
|
|
119
|
+
- **Regla BD** (única excepción a la autonomía):
|
|
120
|
+
1. **Elección de MCP**: si el gap requiere BD y hay **>1 MCP candidato sin default configurado**, la IA pregunta cuál usar. Esa pregunta va por el **mismo `AskUserQuestion`** como un **tab de contenido** (cuenta dentro del límite ≤3 + `flow`), **antes** de ejecutar queries. Si hay un único MCP o un default, no pregunta.
|
|
121
|
+
2. Escribe **primero** las queries en `SCRIPTS.sql` de la research session.
|
|
122
|
+
3. Las ejecuta **read-only** vía MCP (respeta `sql-mutation-guard`: nunca DML/DDL).
|
|
123
|
+
- **Research inconclusa** (BD no disponible, evidencia insuficiente, gap factual irresoluble):
|
|
124
|
+
- La research session cierra con estado **`inconcluso`** y reporta el motivo (vía su `Success criteria` no cumplido).
|
|
125
|
+
- El loop **degrada** el gap: lo pasa a **pregunta-al-humano** (próximo batch → `Q&A traceability`) o, si tampoco aplica, lo **difiere** a `## Open questions` del refined.
|
|
126
|
+
- El gap se marca **"ya intentado vía research"** (`attempts[gap]++`, límite `MAX`) para que `detect_gaps` **no lo re-dispare en bucle** → garantiza convergencia.
|
|
127
|
+
|
|
128
|
+
## AskUserQuestion (design & batching)
|
|
129
|
+
|
|
130
|
+
- Límite del host: **máx 4 preguntas/llamada**. Como el tab `flow` va **siempre** → **≤3 tabs de contenido + 1 tab `flow`**.
|
|
131
|
+
- **tab `flow`** (ciclo de vida, siempre presente): `Compactar` | `Cerrar`. Responder solo los tabs de contenido (sin tocar `flow`) = seguir iterando.
|
|
132
|
+
- **Tabs de contenido** posibles:
|
|
133
|
+
- dudas-de-humano (gaps no factuales);
|
|
134
|
+
- elección de MCP (regla BD) — antes de ejecutar queries;
|
|
135
|
+
- en **convergencia**, acción: `Guardar especificación refinada` | `Preguntar algo más`.
|
|
136
|
+
- **Batching**: agrupar hasta 3 gaps de humano en una sola llamada. Si hay más de 3 pendientes, priorizar (los que desbloquean otros gaps primero) y diferir el resto a la próxima vuelta.
|
|
137
|
+
|
|
138
|
+
## Sequence
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
spec-refine-loop(spec):
|
|
142
|
+
input = exists(NNN-spec-refined.md) ? NNN-spec-refined.md : NNN-spec.md # (#2 resume)
|
|
143
|
+
refine_session = create_or_resume(<spec>-spec-refine) # detecta CHECKPOINT
|
|
144
|
+
work = read(input) (+ aplicar avance del checkpoint si reanuda)
|
|
145
|
+
attempts = {} # anti-relanzamiento por gap
|
|
146
|
+
repeat:
|
|
147
|
+
gaps = detect_gaps(work) menos los gaps "agotados"
|
|
148
|
+
if gaps == ∅: break
|
|
149
|
+
batch = top ≤3 gaps ; pending_human = []
|
|
150
|
+
para cada gap en batch:
|
|
151
|
+
si factual(gap) y attempts[gap] < MAX:
|
|
152
|
+
si requiere BD y >1 MCP sin default → encolar "elección MCP" en pending_human
|
|
153
|
+
rs = create_research_session(gap)
|
|
154
|
+
res = rs.run_and_close() # ANALYSIS-FILE → CONCLUSIONS (+SCRIPTS.sql)
|
|
155
|
+
si res.concluyente: work = integrate(work, res) # → Refinement decisions
|
|
156
|
+
si no: attempts[gap]++ ; si attempts[gap] >= MAX → pending_human.push(gap)
|
|
157
|
+
si no:
|
|
158
|
+
pending_human.push(gap)
|
|
159
|
+
si pending_human no vacío:
|
|
160
|
+
ans = AskUserQuestion(contenido: pending_human (≤3), flow: [Compactar, Cerrar])
|
|
161
|
+
switch(flow):
|
|
162
|
+
Compactar → write CHECKPOINT (refine_session) ; /compact ; continue
|
|
163
|
+
Cerrar → goto finalize
|
|
164
|
+
work = integrate(work, ans) # → Q&A traceability / Open questions
|
|
165
|
+
# convergió:
|
|
166
|
+
ans = AskUserQuestion(contenido: [Guardar refinada, Preguntar algo más],
|
|
167
|
+
flow: [Compactar, Cerrar])
|
|
168
|
+
Guardar → write_with_confirm(NNN-spec-refined.md) ; goto finalize # (#2)
|
|
169
|
+
Preguntar algo más → continue
|
|
170
|
+
flow Compactar/Cerrar → manejar igual
|
|
171
|
+
finalize:
|
|
172
|
+
write CHECKPOINT (refine_session) # (#5) persiste siempre
|
|
173
|
+
write/update BACKLOG (motivo de cierre + Open questions diferidas) # (#5)
|
|
174
|
+
cerrar research sessions abiertas ; cerrar refine_session ; reportar
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
```mermaid
|
|
178
|
+
flowchart TD
|
|
179
|
+
S["input = refined si existe, si no borrador<br/>create_or_resume refine session"] --> D{"¿gaps<br/>(no agotados)?"}
|
|
180
|
+
D -->|no| C["AskUserQuestion<br/>contenido[Guardar refinada · Preguntar más]<br/>flow[Compactar · Cerrar]"]
|
|
181
|
+
D -->|sí| B["tomar ≤3 gaps"]
|
|
182
|
+
B --> F{"¿factual y<br/>attempts<MAX?"}
|
|
183
|
+
F -->|sí| RS["research session<br/>ANALYSIS-FILE → CONCLUSIONS (+SCRIPTS.sql)"]
|
|
184
|
+
RS --> CC{"¿concluyente?"}
|
|
185
|
+
CC -->|sí| I1["integrar → Refinement decisions"]
|
|
186
|
+
CC -->|no| DEG["attempts++ ; degradar a humano / Open questions"]
|
|
187
|
+
F -->|no| Q["AskUserQuestion<br/>contenido[dudas + elección MCP ≤3]<br/>flow[Compactar · Cerrar]"]
|
|
188
|
+
Q --> I2["integrar → Q&A traceability"]
|
|
189
|
+
I1 --> D
|
|
190
|
+
DEG --> D
|
|
191
|
+
I2 --> D
|
|
192
|
+
C -->|Guardar| W["write_with_confirm<br/>NNN-spec-refined.md"]
|
|
193
|
+
C -->|Preguntar más| D
|
|
194
|
+
W --> FIN["finalize: CHECKPOINT + BACKLOG<br/>+ cerrar sessions + reportar"]
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## Compact / resume
|
|
198
|
+
|
|
199
|
+
Cuatro casos al ejecutar `/w:spec-refine` sobre un spec:
|
|
200
|
+
|
|
201
|
+
1. **En curso** (existe `CHECKPOINT.md` en la refine session) → reanuda desde el avance (gaps resueltos, Q&A, `attempts`, research sessions abiertas).
|
|
202
|
+
2. **Sin avance** (no hay CHECKPOINT ni refined) → arranca desde cero leyendo `NNN-spec.md`.
|
|
203
|
+
3. **Ya completado** (existe `NNN-spec-refined.md`, sin CHECKPOINT) → re-refinamiento incremental: input = el **refined** (no el borrador); al `Guardar`, sobrescribe con confirmación.
|
|
204
|
+
4. **`Compactar`** (tab flow) → escribe `CHECKPOINT.md` en la refine session (spec en progreso, gaps restantes, Q&A, `attempts`, research sessions abiertas) → dispara `/compact` del host → reanuda leyendo el checkpoint.
|
|
205
|
+
|
|
206
|
+
## Convergence / exit
|
|
207
|
+
|
|
208
|
+
- **Sin gaps materiales** → ofrece `Guardar especificación refinada`.
|
|
209
|
+
- `Guardar` → `write_with_confirm(NNN-spec-refined.md)` y `finalize`.
|
|
210
|
+
- `Cerrar` (tab flow, en cualquier momento) → `finalize`. **`finalize` persiste siempre**: escribe `CHECKPOINT.md` (reanudable) **y** `BACKLOG.md` (motivo de cierre + `Open questions` diferidas), cierra sessions y reporta. Así sobrevive el avance aunque no se haya `Compactar` antes.
|
|
211
|
+
|
|
212
|
+
## Integration (dónde aterriza cada resolución)
|
|
213
|
+
|
|
214
|
+
- Resuelto vía **research** → `## Refinement decisions` del refined (+ ref a la research session / `CONCLUSIONS`).
|
|
215
|
+
- Resuelto vía **humano** → `## Q&A traceability` del refined.
|
|
216
|
+
- **Research inconclusa o sin resolver** → `## Open questions` del refined (diferido) + `BACKLOG.md` de la refine session al cerrar.
|
|
217
|
+
|
|
218
|
+
## Heredan este chasis
|
|
219
|
+
|
|
220
|
+
- `plan-new-loop` — mismo motor; deltas: plan rico + gap taxonomy de plan.
|
|
221
|
+
- `plan-exec-loop` — mismo motor; deltas: ejecución real (código/BD/git), session por fase, sin auto-export.
|
|
222
|
+
- `quick-loop` — mismo motor (mínimo); hereda además git/BD/no-export de `plan-exec-loop`.
|