@christianmaf80/agentic-workflow 1.41.0-beta.10 → 1.42.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.es.md +13 -94
- package/README.md +14 -94
- package/RELEASE_PROCESS.md +3 -6
- package/bin/cli.js +31 -72
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/acceptance.md +70 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/agent-scores.md +22 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/agent-tasks/1-dev-agent-scaffold.md +106 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/agent-tasks/2-dev-agent-manifest-command.md +105 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/agent-tasks/3-dev-agent-marketplace-evidence.md +103 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/agent-tasks/4-qa-agent-verify-build.md +103 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/analysis.md +197 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/architect/review.md +131 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/changelog.md +26 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/metrics.md +40 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/plan.md +175 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/researcher/research.md +157 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/results-acceptance.md +168 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/task.md +119 -0
- package/dist/agent/artifacts/1-scaffold-extension-vscode-agentinc/verification.md +79 -0
- package/dist/agent/artifacts/11-refinement-capas-constitution/analysis.md +24 -0
- package/dist/agent/artifacts/11-refinement-capas-constitution/roadmap-audit.md +34 -0
- package/dist/agent/artifacts/11-refinement-capas-constitution/task.md +58 -0
- package/dist/agent/artifacts/12-npm-workspaces/acceptance.md +78 -0
- package/dist/agent/artifacts/12-npm-workspaces/analysis.md +179 -0
- package/dist/agent/artifacts/12-npm-workspaces/plan.md +237 -0
- package/dist/agent/artifacts/12-npm-workspaces/researcher/research.md +186 -0
- package/dist/agent/artifacts/12-npm-workspaces/task.md +126 -0
- package/dist/agent/artifacts/13-implement-custom-chat-with-a2ui/acceptance.md +75 -0
- package/dist/agent/artifacts/13-implement-custom-chat-with-a2ui/researcher/research.md +121 -0
- package/dist/agent/artifacts/13-implement-custom-chat-with-a2ui/task.md +104 -0
- package/dist/agent/artifacts/14-re-implement-setup-config-d1/acceptance.md +75 -0
- package/dist/agent/artifacts/14-re-implement-setup-config-d1/architect/analysis.md +90 -0
- package/dist/agent/artifacts/14-re-implement-setup-config-d1/planner/implementation_plan.md +44 -0
- package/dist/agent/artifacts/14-re-implement-setup-config-d1/researcher/research.md +113 -0
- package/dist/agent/artifacts/14-re-implement-setup-config-d1/task.md +107 -0
- package/dist/agent/artifacts/14-re-implement-setup-config-d1/verification/walkthrough.md +37 -0
- package/dist/agent/artifacts/14-re-implement-setup-config-d1/verifier/walkthrough.md +0 -0
- package/dist/agent/artifacts/2-scaffold-vscode-chat-ai-panel/acceptance.md +68 -0
- package/dist/agent/artifacts/2-scaffold-vscode-chat-ai-panel/agent-tasks/1-dev-agent-contribution-points-assets.md +107 -0
- package/dist/agent/artifacts/2-scaffold-vscode-chat-ai-panel/agent-tasks/2-dev-agent-webview-provider.md +106 -0
- package/dist/agent/artifacts/2-scaffold-vscode-chat-ai-panel/agent-tasks/3-dev-agent-webview-ui.md +104 -0
- package/dist/agent/artifacts/2-scaffold-vscode-chat-ai-panel/agent-tasks/4-dev-agent-chat-participant.md +104 -0
- package/dist/agent/artifacts/2-scaffold-vscode-chat-ai-panel/agent-tasks/5-dev-agent-migrate-to-root.md +103 -0
- package/dist/agent/artifacts/2-scaffold-vscode-chat-ai-panel/agent-tasks/fix-1-dev-agent-chat-participant-types.md +108 -0
- package/dist/agent/artifacts/2-scaffold-vscode-chat-ai-panel/agent-tasks/fix-2-dev-agent-view-container-id.md +106 -0
- package/dist/agent/artifacts/2-scaffold-vscode-chat-ai-panel/agent-tasks/fix-3-dev-agent-container-id-lowercase.md +105 -0
- package/dist/agent/artifacts/2-scaffold-vscode-chat-ai-panel/agent-tasks/fix-4-dev-agent-container-id-hyphen.md +105 -0
- package/dist/agent/artifacts/2-scaffold-vscode-chat-ai-panel/agent-tasks/fix-5-dev-agent-view-type-webview.md +103 -0
- package/dist/agent/artifacts/2-scaffold-vscode-chat-ai-panel/analysis.md +179 -0
- package/dist/agent/artifacts/2-scaffold-vscode-chat-ai-panel/architect/review.md +118 -0
- package/dist/agent/artifacts/2-scaffold-vscode-chat-ai-panel/plan.md +171 -0
- package/dist/agent/artifacts/2-scaffold-vscode-chat-ai-panel/researcher/research.md +113 -0
- package/dist/agent/artifacts/2-scaffold-vscode-chat-ai-panel/results-acceptance.md +171 -0
- package/dist/agent/artifacts/2-scaffold-vscode-chat-ai-panel/task.md +119 -0
- package/dist/agent/artifacts/2-scaffold-vscode-chat-ai-panel/verification.md +85 -0
- package/dist/agent/artifacts/3-new-vscode-agentic-activitybar-chat/acceptance.md +69 -0
- package/dist/agent/artifacts/3-new-vscode-agentic-activitybar-chat/agent-scores.md +23 -0
- package/dist/agent/artifacts/3-new-vscode-agentic-activitybar-chat/agent-tasks/1-dev-agent-create-project.md +89 -0
- package/dist/agent/artifacts/3-new-vscode-agentic-activitybar-chat/agent-tasks/2-dev-agent-contributes-activitybar.md +88 -0
- package/dist/agent/artifacts/3-new-vscode-agentic-activitybar-chat/agent-tasks/3-dev-agent-webview-panel.md +88 -0
- package/dist/agent/artifacts/3-new-vscode-agentic-activitybar-chat/agent-tasks/4-dev-agent-chat-participant.md +88 -0
- package/dist/agent/artifacts/3-new-vscode-agentic-activitybar-chat/agent-tasks/5-dev-agent-launch-config.md +90 -0
- package/dist/agent/artifacts/3-new-vscode-agentic-activitybar-chat/agent-tasks/fix-1-dev-agent-view-container-ids.md +90 -0
- package/dist/agent/artifacts/3-new-vscode-agentic-activitybar-chat/analysis.md +175 -0
- package/dist/agent/artifacts/3-new-vscode-agentic-activitybar-chat/architect/review.md +118 -0
- package/dist/agent/artifacts/3-new-vscode-agentic-activitybar-chat/changelog.md +26 -0
- package/dist/agent/artifacts/3-new-vscode-agentic-activitybar-chat/metrics.md +43 -0
- package/dist/agent/artifacts/3-new-vscode-agentic-activitybar-chat/plan.md +167 -0
- package/dist/agent/artifacts/3-new-vscode-agentic-activitybar-chat/researcher/research.md +115 -0
- package/dist/agent/artifacts/3-new-vscode-agentic-activitybar-chat/results-acceptance.md +122 -0
- package/dist/agent/artifacts/3-new-vscode-agentic-activitybar-chat/task.md +119 -0
- package/dist/agent/artifacts/3-new-vscode-agentic-activitybar-chat/verification.md +85 -0
- package/dist/agent/artifacts/4-copiar-estructura-agentic-cliente/acceptance.md +67 -0
- package/dist/agent/artifacts/4-copiar-estructura-agentic-cliente/architect/implementation.md +31 -0
- package/dist/agent/artifacts/4-copiar-estructura-agentic-cliente/brief.md +103 -0
- package/dist/agent/artifacts/4-copiar-estructura-agentic-cliente/closure.md +101 -0
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/acceptance.md +72 -0
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/agent-scores.md +20 -0
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/agent-tasks/1-dev-agent-reestructurar-carpetas.md +101 -0
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/agent-tasks/2-dev-agent-scaffolding-yeoman.md +111 -0
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/agent-tasks/3-dev-agent-merge-extension.md +110 -0
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/agent-tasks/4-dev-agent-merge-config.md +107 -0
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/agent-tasks/5-dev-agent-update-scripts.md +111 -0
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/agent-tasks/6-qa-agent-validation-install.md +108 -0
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/agent-tasks/7-dev-agent-fix-cli-entrypoint.md +104 -0
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/agent-tasks/8-qa-agent-validation-install-retry.md +106 -0
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/analysis.md +125 -0
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/architect/review.md +84 -0
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/changelog.md +34 -0
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/metrics.md +44 -0
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/plan.md +157 -0
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/researcher/research.md +105 -0
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/results-acceptance.md +105 -0
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/task.md +107 -0
- package/dist/agent/artifacts/5-reestructurar-src-para-extension-vscode/verification.md +79 -0
- package/dist/agent/artifacts/6-release-beta-11/agent-tasks/1-dev-agent-release-bump.md +44 -0
- package/dist/agent/artifacts/6-release-beta-11/architect/implementation.md +37 -0
- package/dist/agent/artifacts/6-release-beta-11/brief.md +89 -0
- package/dist/agent/artifacts/6-release-beta-11/closure.md +83 -0
- package/dist/agent/artifacts/6-release-beta-11/task.md +65 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/acceptance.md +70 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/agent-scores.md +24 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/agent-tasks/1-vscode-specialist-scaffold-extension.md +99 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/agent-tasks/2-vscode-specialist-update-manifest.md +101 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/agent-tasks/3-vscode-specialist-webview-provider.md +96 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/agent-tasks/4-vscode-specialist-activitybar-icon.md +95 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/agent-tasks/5-qa-agent-manual-verify.md +97 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/analysis.md +195 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/architect/review.md +124 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/changelog.md +9 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/metrics.md +43 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/plan.md +181 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/researcher/research.md +118 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/results-acceptance.md +146 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/task.md +119 -0
- package/dist/agent/artifacts/7-extension-vscode-webview/verification.md +81 -0
- package/dist/agent/artifacts/8-create-agentic-runtime-cli-first-as-the-single-execution-engine/task.md +126 -0
- package/dist/agent/artifacts/candidate/acceptance.md +23 -0
- package/dist/agent/artifacts/candidate/brief.md +39 -0
- package/dist/agent/artifacts/candidate/init.md +24 -0
- package/dist/agent/artifacts/candidate/task.md +5 -0
- package/dist/agent/artifacts/task-20260128-reorganize-structure/acceptance.md +68 -0
- package/dist/agent/artifacts/task-20260128-reorganize-structure/brief.md +100 -0
- package/dist/agent/artifacts/task-20260128-reorganize-structure/closure.md +40 -0
- package/dist/agent/artifacts/task-20260128-reorganize-structure/implementation.md +48 -0
- package/dist/agent/artifacts/task-20260128-reorganize-structure/task.md +66 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/acceptance.md +65 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-scores.md +26 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/1-neo-agent-deps-chatkit.md +108 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/15-vscode-specialist-views-router.md +89 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/1b-vscode-specialist-review-deps.md +106 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/2-neo-agent-local-server.md +111 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/22-vscode-specialist-external-js.md +84 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/23-qa-agent-coverage-tests.md +85 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/24-vscode-specialist-class-refactor.md +84 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/25-vscode-specialist-external-html.md +88 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/26-vscode-specialist-template-js-html.md +110 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/27-vscode-specialist-fix-loading-setup.md +110 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/28-vscode-specialist-webview-debug-setup.md +107 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/29-vscode-specialist-webview-logging.md +109 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/3-neo-agent-webview-ui.md +107 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/30-vscode-specialist-csp-source.md +88 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/31-vscode-specialist-logging-prefix.md +83 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/32-vscode-specialist-logging-visibility.md +85 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/33-vscode-specialist-lit-setup.md +85 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/34-vscode-specialist-core-lit-base.md +89 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/35-vscode-specialist-lit-decorators-ts.md +88 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/36-vscode-specialist-lit-module-start.md +85 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/37-vscode-specialist-lit-ready-state.md +86 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/4-qa-agent-verification.md +106 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/5-vscode-specialist-api-key-ui.md +107 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/6-vscode-specialist-refactor-protocol.md +108 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/7-qa-agent-unit-tests.md +104 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-10-vscode-specialist-api-key-handshake.md +84 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-11-vscode-specialist-api-key-button-style.md +83 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-12-vscode-specialist-key-gate-view.md +84 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-13-vscode-specialist-status-timeout.md +83 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-14-vscode-specialist-init-flow.md +84 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-16-vscode-specialist-view-context.md +87 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-17-vscode-specialist-clear-key-command.md +85 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-18-vscode-specialist-context-sync.md +84 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-19-vscode-specialist-setup-visible.md +88 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-20-vscode-specialist-loading-state.md +83 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-21-vscode-specialist-loading-label.md +84 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-8-vscode-specialist-api-key-detect.md +89 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/agent-tasks/fix-9-vscode-specialist-api-key-state.md +84 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/analysis.md +156 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/architect/review.md +141 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/changelog.md +30 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/metrics.md +43 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/plan.md +151 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/research.md +115 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/results-acceptance.md +171 -0
- package/dist/agent/artifacts/task-20260130-chatkit-mainview/verification.md +87 -0
- package/dist/agent/artifacts/task-20260130-fix-mainview-provider/acceptance.md +64 -0
- package/dist/agent/artifacts/task-20260130-fix-mainview-provider/architect/implementation.md +30 -0
- package/dist/agent/artifacts/task-20260130-fix-mainview-provider/brief.md +102 -0
- package/dist/agent/artifacts/task-20260130-fix-mainview-provider/closure.md +95 -0
- package/dist/agent/artifacts/task-20260130-rol-vscode/acceptance.md +68 -0
- package/dist/agent/artifacts/task-20260130-rol-vscode/architect/implementation.md +33 -0
- package/dist/agent/artifacts/task-20260130-rol-vscode/brief.md +104 -0
- package/dist/agent/artifacts/task-20260130-rol-vscode/closure.md +100 -0
- package/dist/agent/artifacts/task-beta-release/acceptance.md +23 -0
- package/dist/agent/artifacts/task-beta-release/brief.md +39 -0
- package/dist/agent/artifacts/task-beta-release/closure.md +29 -0
- package/dist/agent/artifacts/task-beta-release/init.md +26 -0
- package/dist/agent/artifacts/task-beta-release/task.md +64 -0
- package/dist/agent/index.md +69 -30
- package/dist/agent/rules/constitution/agents-behavior.md +110 -158
- package/dist/agent/rules/constitution/backend.md +27 -0
- package/dist/agent/rules/constitution/background.md +30 -0
- package/dist/agent/rules/constitution/clean-code.md +5 -6
- package/dist/agent/rules/constitution/modular-architecture.md +66 -0
- package/dist/agent/rules/constitution/view.md +41 -0
- package/dist/agent/rules/constitution/vscode-extensions.md +32 -0
- package/dist/agent/rules/roles/architect.md +1 -2
- package/dist/agent/rules/roles/backend.md +21 -0
- package/dist/agent/rules/roles/background.md +20 -0
- package/dist/agent/rules/roles/devops.md +20 -0
- package/dist/agent/rules/roles/engine.md +26 -0
- package/dist/agent/rules/roles/neo.md +12 -13
- package/dist/agent/rules/roles/researcher.md +2 -2
- package/dist/agent/rules/roles/view.md +22 -0
- package/dist/agent/rules/roles/vscode-specialist.md +24 -0
- package/dist/agent/templates/acceptance.md +19 -25
- package/dist/agent/templates/agent-task.md +39 -39
- package/dist/agent/templates/analysis.md +92 -92
- package/dist/agent/templates/brief.md +96 -0
- package/dist/agent/templates/changelog.md +8 -8
- package/dist/agent/templates/closure.md +95 -0
- package/dist/agent/templates/coding/coding-integration-report.md +102 -0
- package/dist/agent/templates/coding/coding-layer-report.md +78 -0
- package/dist/agent/templates/init.md +2 -23
- package/dist/agent/templates/planning.md +73 -73
- package/dist/agent/templates/research.md +43 -43
- package/dist/agent/templates/results-acceptance.md +94 -94
- package/dist/agent/templates/review.md +59 -59
- package/dist/agent/templates/subtask-implementation.md +29 -29
- package/dist/agent/templates/supplemental-report.md +0 -6
- package/dist/agent/templates/task-metrics.md +14 -14
- package/dist/agent/templates/task.md +18 -33
- package/dist/agent/templates/todo-item.md +23 -23
- package/dist/agent/workflows/coding/coding-backend.md +147 -0
- package/dist/agent/workflows/coding/coding-background.md +149 -0
- package/dist/agent/workflows/coding/coding-integration.md +174 -0
- package/dist/agent/workflows/coding/coding-view.md +151 -0
- package/dist/agent/workflows/init.md +93 -133
- package/dist/agent/workflows/scaffold-module.md +38 -0
- package/dist/agent/workflows/tasklifecycle-long/phase-0-acceptance-criteria.md +124 -134
- package/dist/agent/workflows/tasklifecycle-long/phase-1-research.md +103 -97
- package/dist/agent/workflows/tasklifecycle-long/phase-2-analysis.md +107 -102
- package/dist/agent/workflows/tasklifecycle-long/phase-3-planning.md +125 -120
- package/dist/agent/workflows/tasklifecycle-long/phase-4-implementation.md +121 -125
- package/dist/agent/workflows/tasklifecycle-long/phase-5-verification.md +105 -101
- package/dist/agent/workflows/tasklifecycle-long/phase-6-results-acceptance.md +82 -78
- package/dist/agent/workflows/tasklifecycle-long/phase-7-evaluation.md +84 -75
- package/dist/agent/workflows/tasklifecycle-long/phase-8-commit-push.md +94 -89
- package/dist/agent/workflows/tasklifecycle-short/short-phase-1-brief.md +117 -0
- package/dist/agent/workflows/tasklifecycle-short/short-phase-2-implementation.md +114 -0
- package/dist/agent/workflows/tasklifecycle-short/short-phase-3-closure.md +111 -0
- package/dist/cli/commands/create.js +4 -29
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/fork.js +45 -0
- package/dist/cli/commands/fork.js.map +1 -0
- package/dist/cli/commands/init.js +4 -78
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/mcp.js +3 -17
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/scaffold.js +57 -0
- package/dist/cli/commands/scaffold.js.map +1 -0
- package/dist/cli/index.js +0 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/infrastructure/context/manager.js +0 -2
- package/dist/infrastructure/context/manager.js.map +1 -1
- package/dist/infrastructure/index.js +0 -5
- package/dist/infrastructure/index.js.map +1 -1
- package/dist/runtime/engine/emitter.js +28 -0
- package/dist/runtime/engine/emitter.js.map +1 -0
- package/dist/runtime/engine/engine.js +128 -0
- package/dist/runtime/engine/engine.js.map +1 -0
- package/dist/runtime/engine/index.js +7 -0
- package/dist/runtime/engine/index.js.map +1 -0
- package/dist/runtime/engine/service.js +78 -0
- package/dist/runtime/engine/service.js.map +1 -0
- package/dist/runtime/engine/state-store.js +24 -0
- package/dist/runtime/engine/state-store.js.map +1 -0
- package/dist/runtime/{task-loader.js → engine/task-loader.js} +24 -5
- package/dist/runtime/engine/task-loader.js.map +1 -0
- package/dist/runtime/engine/workflow-loader.js +82 -0
- package/dist/runtime/engine/workflow-loader.js.map +1 -0
- package/dist/runtime/index.js +2 -4
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/mcp/index.js +2 -0
- package/dist/runtime/mcp/index.js.map +1 -0
- package/dist/runtime/mcp/server.js +249 -0
- package/dist/runtime/mcp/server.js.map +1 -0
- package/media/agent-chat.svg +20 -0
- package/media/codicons/codicon.css +698 -0
- package/media/codicons/codicon.ttf +0 -0
- package/media/providers/claude.png +0 -0
- package/media/providers/gemini.png +0 -0
- package/media/providers/openai.png +0 -0
- package/package.json +124 -56
- package/dist/agent/artifacts/candidate/index.md +0 -26
- package/dist/agent/artifacts/index.md +0 -25
- package/dist/agent/rules/constitution/index.md +0 -26
- package/dist/agent/rules/constitution/runtime-integration.md +0 -102
- package/dist/agent/rules/index.md +0 -70
- package/dist/agent/rules/roles/index.md +0 -44
- package/dist/agent/skills/index.md +0 -23
- package/dist/agent/skills/runtime-governance/SKILL.md +0 -62
- package/dist/agent/templates/analisis.md +0 -86
- package/dist/agent/templates/index.md +0 -43
- package/dist/agent/templates/plan.md +0 -49
- package/dist/agent/templates/qa-results.md +0 -70
- package/dist/agent/workflows/index.md +0 -30
- package/dist/agent/workflows/tasklifecycle-long/index.md +0 -172
- package/dist/agent/workflows/tasklifecycle-short/index.md +0 -77
- package/dist/agent/workflows/tasklifecycle-short/short-phase-1-analisis.md +0 -116
- package/dist/agent/workflows/tasklifecycle-short/short-phase-2-plan.md +0 -81
- package/dist/agent/workflows/tasklifecycle-short/short-phase-3-implementation.md +0 -115
- package/dist/agent/workflows/tasklifecycle-short/short-phase-4-qa-results.md +0 -84
- package/dist/cli/commands/bootstrap.js +0 -111
- package/dist/cli/commands/bootstrap.js.map +0 -1
- package/dist/cli/commands/register-mcp.js +0 -135
- package/dist/cli/commands/register-mcp.js.map +0 -1
- package/dist/infrastructure/context/index.js +0 -2
- package/dist/infrastructure/context/index.js.map +0 -1
- package/dist/infrastructure/logger/index.js +0 -41
- package/dist/infrastructure/logger/index.js.map +0 -1
- package/dist/infrastructure/mapping/index.js +0 -2
- package/dist/infrastructure/mapping/index.js.map +0 -1
- package/dist/infrastructure/migration/index.js +0 -4
- package/dist/infrastructure/migration/index.js.map +0 -1
- package/dist/infrastructure/utils/index.js +0 -2
- package/dist/infrastructure/utils/index.js.map +0 -1
- package/dist/mcp/emitter.js +0 -24
- package/dist/mcp/emitter.js.map +0 -1
- package/dist/mcp/handlers.js +0 -74
- package/dist/mcp/handlers.js.map +0 -1
- package/dist/mcp/index.js +0 -3
- package/dist/mcp/index.js.map +0 -1
- package/dist/mcp/resources.js +0 -69
- package/dist/mcp/resources.js.map +0 -1
- package/dist/mcp/server.js +0 -94
- package/dist/mcp/server.js.map +0 -1
- package/dist/mcp/tools.js +0 -189
- package/dist/mcp/tools.js.map +0 -1
- package/dist/runtime/frontmatter-sync.js +0 -100
- package/dist/runtime/frontmatter-sync.js.map +0 -1
- package/dist/runtime/reconcile.js +0 -37
- package/dist/runtime/reconcile.js.map +0 -1
- package/dist/runtime/runtime.js +0 -427
- package/dist/runtime/runtime.js.map +0 -1
- package/dist/runtime/task-loader.js.map +0 -1
- package/dist/runtime/task-resolver.js +0 -401
- package/dist/runtime/task-resolver.js.map +0 -1
- package/dist/runtime/write-guard.js +0 -200
- package/dist/runtime/write-guard.js.map +0 -1
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
🔬 **researcher-agent**: Informe de investigación técnica para T012 — npm-workspaces.
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
artifact: research
|
|
5
|
+
phase: phase-1-research
|
|
6
|
+
owner: researcher-agent
|
|
7
|
+
status: draft
|
|
8
|
+
related_task: 12-npm-workspaces
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Research Report — 12-npm-workspaces
|
|
12
|
+
|
|
13
|
+
> [!CAUTION]
|
|
14
|
+
> **REGLA PERMANENT**: Este documento es SOLO documentación.
|
|
15
|
+
> El researcher-agent documenta hallazgos SIN analizar, SIN recomendar, SIN proponer soluciones.
|
|
16
|
+
> El análisis corresponde a Phase 2.
|
|
17
|
+
|
|
18
|
+
## 1. Resumen ejecutivo
|
|
19
|
+
- **Problema investigado**: Migración del proyecto monolítico a npm workspaces con packages independientes
|
|
20
|
+
- **Objetivo de la investigación**: Documentar la estructura actual, dependencias entre módulos, y las capacidades de npm workspaces
|
|
21
|
+
- **Principales hallazgos**: El proyecto tiene dependencias cruzadas entre `app→core` y `cli→infrastructure+runtime`. npm workspaces soporta este patrón de forma nativa desde Node 16+
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 2. Necesidades detectadas
|
|
26
|
+
|
|
27
|
+
### Estructura actual del proyecto
|
|
28
|
+
```
|
|
29
|
+
src/
|
|
30
|
+
├── extension/
|
|
31
|
+
│ ├── extension.ts → entry point VSCode (importa app)
|
|
32
|
+
│ └── modules/
|
|
33
|
+
│ ├── app/ → Package candidato @agentic-workflow/app
|
|
34
|
+
│ │ ├── index.ts → importa '../core/index.js'
|
|
35
|
+
│ │ ├── backend/ → importa '../../core/backend/index.js'
|
|
36
|
+
│ │ ├── background/ → importa '../../core/index.js'
|
|
37
|
+
│ │ ├── view/ → importa '../../core/view/index.js'
|
|
38
|
+
│ │ └── test/unit/ → importa '../../../core/...'
|
|
39
|
+
│ └── core/ → Package candidato @agentic-workflow/core
|
|
40
|
+
│ ├── index.ts → re-exports de submodules
|
|
41
|
+
│ ├── backend/ → AbstractBackend, VirtualServer
|
|
42
|
+
│ ├── background/ → Background base class
|
|
43
|
+
│ ├── messaging/ → Transport layer
|
|
44
|
+
│ ├── view/ → View base + templates
|
|
45
|
+
│ ├── logger.ts
|
|
46
|
+
│ ├── constants.ts
|
|
47
|
+
│ └── types.d.ts
|
|
48
|
+
├── cli/ → Package candidato @agentic-workflow/cli
|
|
49
|
+
│ ├── index.ts → re-exports commands
|
|
50
|
+
│ └── commands/
|
|
51
|
+
│ ├── init.ts → importa '../../infrastructure/...'
|
|
52
|
+
│ ├── create.ts → importa '../../infrastructure/...'
|
|
53
|
+
│ └── mcp.ts → importa '../../runtime/...'
|
|
54
|
+
├── infrastructure/ → NO es package (dependencia de cli)
|
|
55
|
+
└── runtime/ → NO es package (dependencia de cli)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Mapa de dependencias cruzadas entre módulos
|
|
59
|
+
| Origen | Destino | Archivos que importan |
|
|
60
|
+
|--------|---------|----------------------|
|
|
61
|
+
| `app/index.ts` | `core/index.js` | `App extends CoreApp` |
|
|
62
|
+
| `app/backend/index.ts` | `core/backend/index.js` | `AbstractBackend` |
|
|
63
|
+
| `app/background/index.ts` | `core/index.js` | `Background, ViewHtml, Message` |
|
|
64
|
+
| `app/view/index.ts` | `core/view/index.js` | `View` |
|
|
65
|
+
| `app/test/unit/background.test.ts` | `core/messaging/background.js`, `core/index.js` | Test imports |
|
|
66
|
+
| `cli/commands/init.ts` | `infrastructure/...`, `runtime/...` | `detectAgentSystem`, `resolver`, `backup`, `startRuntimeMcpServer` |
|
|
67
|
+
| `cli/commands/create.ts` | `infrastructure/mapping/resolver.js` | Resolver |
|
|
68
|
+
| `cli/commands/mcp.ts` | `runtime/mcp/server.js` | `startRuntimeMcpServer` |
|
|
69
|
+
|
|
70
|
+
### Configuración TypeScript actual
|
|
71
|
+
- **tsconfig.json**: `rootDir: ./src`, `outDir: ./dist`, `module: NodeNext`
|
|
72
|
+
- **tsconfig.build.json**: Excluye `src/extension/**` y tests (build solo cli/runtime/infra)
|
|
73
|
+
- Sin TypeScript project references configuradas
|
|
74
|
+
|
|
75
|
+
### Tests existentes
|
|
76
|
+
- **E2E**: `test/e2e/extension.spec.ts` — Playwright, 1 archivo, config en `playwright.config.ts` (testDir: `./test/e2e`)
|
|
77
|
+
- **Unit**: `src/extension/modules/app/test/unit/background.test.ts` — Vitest
|
|
78
|
+
- **Scripts**: `npm run test:e2e` (Playwright), `npm run test:unit` (Vitest), `npm run compile` (tsc + build-view.mjs)
|
|
79
|
+
|
|
80
|
+
### Build pipeline actual
|
|
81
|
+
- `compile`: `tsc -p ./ && node scripts/build-view.mjs`
|
|
82
|
+
- `build`: `clean-dist && tsc -p tsconfig.build.json && copy-assets`
|
|
83
|
+
- `watch`: `tsc -watch -p ./ & node scripts/build-view.mjs --watch`
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 3. Hallazgos técnicos
|
|
88
|
+
|
|
89
|
+
### 3.1 npm Workspaces
|
|
90
|
+
- **Descripción**: Funcionalidad nativa de npm (desde v7 / Node 16) que permite gestionar múltiples packages dentro de un mismo repositorio.
|
|
91
|
+
- **Estado**: Estable, soportado en producción
|
|
92
|
+
- **Documentación oficial**: https://docs.npmjs.com/cli/v10/using-npm/workspaces
|
|
93
|
+
- **Limitaciones conocidas**:
|
|
94
|
+
- Hoisting por defecto; se puede controlar con `.npmrc` (`install-strategy=nested`)
|
|
95
|
+
- `node_modules` compartido en root por defecto
|
|
96
|
+
- Requiere que cada workspace tenga su propio `package.json` con campo `name`
|
|
97
|
+
|
|
98
|
+
### 3.2 workspace: protocol
|
|
99
|
+
- **Descripción**: Protocolo para referenciar packages del workspace como dependencias (`"@agentic-workflow/core": "workspace:*"`)
|
|
100
|
+
- **Estado**: Soportado nativamente por npm desde v9+
|
|
101
|
+
- **Documentación**: https://docs.npmjs.com/cli/v10/configuring-npm/package-json#workspace-dependencies
|
|
102
|
+
- **Limitaciones**: Packages con `workspace:*` no se pueden publicar directamente; npm los reemplaza en `npm pack`/`npm publish`
|
|
103
|
+
|
|
104
|
+
### 3.3 TypeScript Project References
|
|
105
|
+
- **Descripción**: Mecanismo nativo de TypeScript para compilar múltiples proyectos con dependencias entre ellos
|
|
106
|
+
- **Estado**: Estable desde TypeScript 3.0+
|
|
107
|
+
- **Documentación**: https://www.typescriptlang.org/docs/handbook/project-references.html
|
|
108
|
+
- **Limitaciones**: Requiere `composite: true` y `declaration: true` en cada sub-proyecto
|
|
109
|
+
|
|
110
|
+
### 3.4 VSCode Extension con Workspaces
|
|
111
|
+
- **Descripción**: Las extensiones VSCode usan webpack/esbuild para bundling; npm workspaces puede coexistir
|
|
112
|
+
- **Estado**: No documentado oficialmente por VSCode
|
|
113
|
+
- **Documentación**: https://code.visualstudio.com/api/working-with-extensions/bundling-extension
|
|
114
|
+
- **Limitaciones**: El entry point (`main` en package.json root) debe seguir apuntando al bundle final
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## 4. APIs relevantes
|
|
119
|
+
|
|
120
|
+
### npm CLI workspace commands
|
|
121
|
+
| Comando | Descripción |
|
|
122
|
+
|---------|-------------|
|
|
123
|
+
| `npm install` | Instala deps de todos los workspaces automáticamente |
|
|
124
|
+
| `npm run -w <name> <script>` | Ejecuta script en un workspace específico |
|
|
125
|
+
| `npm run --ws <script>` | Ejecuta script en todos los workspaces |
|
|
126
|
+
| `npm ls --ws` | Lista dependencias de workspaces |
|
|
127
|
+
|
|
128
|
+
### package.json `workspaces` field
|
|
129
|
+
```json
|
|
130
|
+
{
|
|
131
|
+
"workspaces": [
|
|
132
|
+
"src/extension/modules/app",
|
|
133
|
+
"src/extension/modules/core",
|
|
134
|
+
"src/cli"
|
|
135
|
+
]
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## 5. Compatibilidad
|
|
142
|
+
|
|
143
|
+
### Node.js / npm versions
|
|
144
|
+
| Feature | Mínimo requerido | Actual en proyecto |
|
|
145
|
+
|---------|:---:|:---:|
|
|
146
|
+
| npm workspaces | npm 7+ / Node 16+ | Node 20+ (by engines) |
|
|
147
|
+
| workspace: protocol | npm 9+ | Compatible |
|
|
148
|
+
| TypeScript project references | TS 3.0+ | TS 5.9.3 |
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## 6. Oportunidades detectadas
|
|
153
|
+
- TypeScript project references podrían acelerar compilación incremental en monorepos
|
|
154
|
+
- npm workspace symlinking automático elimina necesidad de `npm link` manual
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## 7. Riesgos identificados
|
|
159
|
+
|
|
160
|
+
| Riesgo | Severidad | Fuente |
|
|
161
|
+
|--------|:---------:|--------|
|
|
162
|
+
| `cli` importa `infrastructure` y `runtime` con rutas relativas `../../` — no son workspaces | Alta | Análisis de imports |
|
|
163
|
+
| `extension.ts` importa `./modules/app/index.js` — ruta relativa que depende de la estructura de carpetas | Media | Código fuente |
|
|
164
|
+
| Unit tests en app importan core con rutas relativas `../../../core/` | Media | Código fuente |
|
|
165
|
+
| El `tsconfig.json` tiene `rootDir: ./src` — habrá que ajustar si cada package tiene su propio tsconfig | Alta | tsconfig.json |
|
|
166
|
+
| VSCode extension main apunta a `./dist/extension/extension.js` — la ruta de output debe mantenerse | Alta | package.json |
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## 8. Fuentes
|
|
171
|
+
- [npm Workspaces](https://docs.npmjs.com/cli/v10/using-npm/workspaces)
|
|
172
|
+
- [npm workspace: protocol](https://docs.npmjs.com/cli/v10/configuring-npm/package-json)
|
|
173
|
+
- [TypeScript Project References](https://www.typescriptlang.org/docs/handbook/project-references.html)
|
|
174
|
+
- [VSCode Extension Bundling](https://code.visualstudio.com/api/working-with-extensions/bundling-extension)
|
|
175
|
+
- [Node.js Subpath Exports](https://nodejs.org/api/packages.html#subpath-exports)
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## 9. Aprobacion del desarrollador (OBLIGATORIA)
|
|
180
|
+
```yaml
|
|
181
|
+
approval:
|
|
182
|
+
developer:
|
|
183
|
+
decision: SI
|
|
184
|
+
date: "2026-02-16T07:35:37+01:00"
|
|
185
|
+
comments: null
|
|
186
|
+
```
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 12
|
|
3
|
+
title: npm-workspaces
|
|
4
|
+
owner: architect-agent
|
|
5
|
+
strategy: long
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Task
|
|
9
|
+
|
|
10
|
+
## Identificación
|
|
11
|
+
- id: 12
|
|
12
|
+
- title: npm-workspaces
|
|
13
|
+
- scope: current
|
|
14
|
+
- owner: architect-agent
|
|
15
|
+
|
|
16
|
+
## Origen
|
|
17
|
+
- created_from:
|
|
18
|
+
- workflow: tasklifecycle-long
|
|
19
|
+
- source: init
|
|
20
|
+
- candidate_path: artifacts.candidate.task
|
|
21
|
+
|
|
22
|
+
## Descripción de la tarea
|
|
23
|
+
Convertir el proyecto en un monorepo con npm workspaces donde cada módulo se convierte en un package npm independiente con su propio `package.json`.
|
|
24
|
+
|
|
25
|
+
## Objetivo
|
|
26
|
+
Reestructurar el proyecto para que los módulos `app`, `core` y `cli` sean packages npm privados y las dependencias entre ellos se gestionen a través de referencias de workspace, con build unificado desde el root.
|
|
27
|
+
|
|
28
|
+
## Estado del ciclo de vida (FUENTE ÚNICA DE VERDAD)
|
|
29
|
+
|
|
30
|
+
```yaml
|
|
31
|
+
task:
|
|
32
|
+
id: "12"
|
|
33
|
+
title: "npm-workspaces"
|
|
34
|
+
strategy: "long"
|
|
35
|
+
artifacts:
|
|
36
|
+
supplemental: []
|
|
37
|
+
phase:
|
|
38
|
+
current: "phase-8-commit-push"
|
|
39
|
+
validated_by: "architect-agent"
|
|
40
|
+
updated_at: "2026-02-16T07:54:25+01:00"
|
|
41
|
+
lifecycle:
|
|
42
|
+
phases:
|
|
43
|
+
phase-0-acceptance-criteria:
|
|
44
|
+
completed: true
|
|
45
|
+
validated_by: architect-agent
|
|
46
|
+
validated_at: "2026-02-16T07:32:24+01:00"
|
|
47
|
+
phase-1-research:
|
|
48
|
+
completed: true
|
|
49
|
+
validated_by: architect-agent
|
|
50
|
+
validated_at: "2026-02-16T07:35:37+01:00"
|
|
51
|
+
phase-2-analysis:
|
|
52
|
+
completed: true
|
|
53
|
+
validated_by: architect-agent
|
|
54
|
+
validated_at: "2026-02-16T07:39:57+01:00"
|
|
55
|
+
phase-3-planning:
|
|
56
|
+
completed: true
|
|
57
|
+
validated_by: architect-agent
|
|
58
|
+
validated_at: "2026-02-16T07:42:30+01:00"
|
|
59
|
+
phase-4-implementation:
|
|
60
|
+
completed: true
|
|
61
|
+
validated_by: architect-agent
|
|
62
|
+
validated_at: "2026-02-16T07:50:00+01:00"
|
|
63
|
+
phase-5-verification:
|
|
64
|
+
completed: true
|
|
65
|
+
validated_by: architect-agent
|
|
66
|
+
validated_at: "2026-02-16T07:54:25+01:00"
|
|
67
|
+
phase-6-results-acceptance:
|
|
68
|
+
completed: true
|
|
69
|
+
validated_by: architect-agent
|
|
70
|
+
validated_at: "2026-02-16T07:54:25+01:00"
|
|
71
|
+
phase-7-evaluation:
|
|
72
|
+
completed: true
|
|
73
|
+
validated_by: architect-agent
|
|
74
|
+
validated_at: "2026-02-16T07:54:25+01:00"
|
|
75
|
+
phase-8-commit-push:
|
|
76
|
+
completed: false
|
|
77
|
+
validated_by: null
|
|
78
|
+
validated_at: null
|
|
79
|
+
subflows:
|
|
80
|
+
components:
|
|
81
|
+
create: []
|
|
82
|
+
refactor:
|
|
83
|
+
- name: app-module-to-package
|
|
84
|
+
completed: true
|
|
85
|
+
validated_by: architect-agent
|
|
86
|
+
validated_at: "2026-02-16T07:54:25+01:00"
|
|
87
|
+
- name: core-module-to-package
|
|
88
|
+
completed: true
|
|
89
|
+
validated_by: architect-agent
|
|
90
|
+
validated_at: "2026-02-16T07:54:25+01:00"
|
|
91
|
+
- name: cli-to-package
|
|
92
|
+
completed: true
|
|
93
|
+
validated_by: architect-agent
|
|
94
|
+
validated_at: "2026-02-16T07:54:25+01:00"
|
|
95
|
+
delete: []
|
|
96
|
+
short-phase-1-brief:
|
|
97
|
+
completed: false
|
|
98
|
+
validated_by: null
|
|
99
|
+
validated_at: null
|
|
100
|
+
short-phase-2-implementation:
|
|
101
|
+
completed: false
|
|
102
|
+
validated_by: null
|
|
103
|
+
validated_at: null
|
|
104
|
+
short-phase-3-closure:
|
|
105
|
+
completed: false
|
|
106
|
+
validated_by: null
|
|
107
|
+
validated_at: null
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## 2. Definición y Alcance (Contrato)
|
|
113
|
+
- **Acceptance Criteria**: [acceptance.md](file:///Users/milos/Documents/workspace/agentic-workflow/.agent/artifacts/12-npm-workspaces/acceptance.md)
|
|
114
|
+
- **Alias**: `task.acceptance`
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Reglas contractuales
|
|
119
|
+
- Este fichero es la **fuente única de verdad** del estado de la tarea.
|
|
120
|
+
- El campo `task.phase.current` **SOLO puede ser modificado por `architect-agent`**.
|
|
121
|
+
- El campo `task.lifecycle.phases.*` **SOLO puede ser marcado como completed por `architect-agent`**.
|
|
122
|
+
- Una fase **NO puede marcarse como completed** si no es la fase actual.
|
|
123
|
+
- El avance de fase requiere:
|
|
124
|
+
1. Marcar la fase actual como `completed: true`
|
|
125
|
+
2. Validación explícita del architect
|
|
126
|
+
3. Actualización de `task.phase.current` a la siguiente fase
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Acceptance Criteria — 13-Implement Custom Chat with A2UI
|
|
2
|
+
|
|
3
|
+
## Agent Identification (MANDATORY)
|
|
4
|
+
First line of the document:
|
|
5
|
+
`<icon> **<agent-name>**: <message>`
|
|
6
|
+
|
|
7
|
+
## 1. Consolidated Definition
|
|
8
|
+
The user requires replacing the current VSCode ChatKit integration with a custom chat interface built using **A2UI** (Google's new framework for AI-rendered components). The goal is to completely remove dependencies on `vscode-chatkit` and implement a "Premium" chat experience that supports **Spanish UI labels** while maintaining the source code in **English**. Key features must include Markdown rendering, Streaming, Code Blocks, Slash Commands, and File Attachments. The design is not pre-defined, so a research phase is required to define the look & feel using A2UI capabilities.
|
|
9
|
+
|
|
10
|
+
## 2. Answers to Clarification Questions
|
|
11
|
+
> This section documents the developer's answers to the 5 questions formulated by the architect-agent.
|
|
12
|
+
|
|
13
|
+
| # | Question (formulated by architect) | Answer (from developer) |
|
|
14
|
+
|---|-----------------------------------|------------------------|
|
|
15
|
+
| 1 | **Architecture (A2UI)**: What exactly is "A2UI"? Is it an existing NPM library, a local module, or a new framework we need to create from scratch? | A2UI is the new framework from Google to render components by AI Agents. |
|
|
16
|
+
| 2 | **Scope (ChatKit)**: Does "Replace ChatKit" imply a complete removal of the `vscode-chatkit` dependency? Does this affect the backend `sessions` endpoint or just the frontend? | Yes, we have to eliminate any code made for OpenAI ChatKit. |
|
|
17
|
+
| 3 | **Features**: What mandatory features must this "Custom Chat" support? (e.g., Markdown, Streaming, Code Blocks, Slash Commands, File Attachments)? | Yes (Markdown, Streaming, Code Blocks, Slash Commands, File Attachments). |
|
|
18
|
+
| 4 | **Language**: Confirming "Spanish chat / English code": Does this mean **UI Labels/Texts** in Spanish and **Source Code** in English? Does it affect the System Prompt language? | Yes. |
|
|
19
|
+
| 5 | **Design**: Is there a specific design/wireframe for A2UI? Should it look like VS Code native or have a custom "Premium" style? | No, do research. |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 3. Verifiable Acceptance Criteria
|
|
24
|
+
> List of criteria derived from the previous answers that must be verified in Phase 5.
|
|
25
|
+
|
|
26
|
+
1. Scope:
|
|
27
|
+
- `vscode-chatkit` dependency is removed from `package.json` and `node_modules`.
|
|
28
|
+
- All `ChatKit` related code in `src/extension/` and `src/webview/` is removed or refactored.
|
|
29
|
+
- A new Chat Interface is implemented using A2UI framework.
|
|
30
|
+
|
|
31
|
+
2. Inputs / Data:
|
|
32
|
+
- User types messages in Spanish/English.
|
|
33
|
+
- User can attach files.
|
|
34
|
+
- User can use slash commands (e.g., `/reset`, `/model`).
|
|
35
|
+
|
|
36
|
+
3. Outputs / Expected Result:
|
|
37
|
+
- Chat UI renders messages with Markdown support.
|
|
38
|
+
- Code blocks are syntax highlighted and copyable.
|
|
39
|
+
- Responses stream in real-time.
|
|
40
|
+
- UI Labels (buttons, placeholders, errors) are in **Spanish**.
|
|
41
|
+
|
|
42
|
+
4. Constraints:
|
|
43
|
+
- Source code variable names, comments, and structure must be in **English**.
|
|
44
|
+
- Must use **A2UI** framework.
|
|
45
|
+
- Must work within VS Code Webview.
|
|
46
|
+
|
|
47
|
+
5. Acceptance Criterion (Done):
|
|
48
|
+
- A functional Chat Interface displayed in VS Code Side Bar.
|
|
49
|
+
- Can send a message and receive a streaming response from the Agent.
|
|
50
|
+
- "ChatKit" is nowhere to be found in the codebase.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Approval (Gate 0)
|
|
55
|
+
This document constitutes the task contract. Its approval is blocking to proceed to Phase 1.
|
|
56
|
+
|
|
57
|
+
```yaml
|
|
58
|
+
approval:
|
|
59
|
+
developer:
|
|
60
|
+
decision: SI
|
|
61
|
+
date: 2026-02-16T12:00:33+01:00
|
|
62
|
+
comments: "Approved via chat"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Validation History (Phase 0)
|
|
68
|
+
```yaml
|
|
69
|
+
history:
|
|
70
|
+
- phase: "phase-0-acceptance-criteria"
|
|
71
|
+
action: "completed"
|
|
72
|
+
validated_by: "architect-agent"
|
|
73
|
+
timestamp: "2026-02-16T11:59:02+01:00"
|
|
74
|
+
notes: "Acceptance criteria defined"
|
|
75
|
+
```
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
artifact: research
|
|
3
|
+
phase: phase-1-research
|
|
4
|
+
owner: researcher-agent
|
|
5
|
+
status: approved
|
|
6
|
+
related_task: 13-implement-custom-chat-with-a2ui
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Research Report — 13-Implement Custom Chat with A2UI
|
|
10
|
+
|
|
11
|
+
## Agent Identification (MANDATORY)
|
|
12
|
+
🔬 **researcher-agent**: Researching A2UI integration for VS Code.
|
|
13
|
+
|
|
14
|
+
> [!CAUTION]
|
|
15
|
+
> **PERMANENT RULE**: This document is ONLY documentation.
|
|
16
|
+
> The researcher-agent documents findings WITHOUT analyzing, WITHOUT recommending, WITHOUT proposing solutions.
|
|
17
|
+
> Analysis belongs to Phase 2.
|
|
18
|
+
|
|
19
|
+
## 1. Executive Summary
|
|
20
|
+
- **Problem investigated**: How to implement a custom A2UI-based chat interface in VS Code to replace a legacy (non-existent/removed) ChatKit implementation.
|
|
21
|
+
- **Research objective**: Understand A2UI protocol, its integration with VS Code Webviews, and compliance with the "Spanish UI / English Code" requirement.
|
|
22
|
+
- **Key findings**:
|
|
23
|
+
- A2UI is a JSON-based declarative UI protocol from Google.
|
|
24
|
+
- No legacy "ChatKit" code exists in the current `src`, offering a clean slate.
|
|
25
|
+
- Integration requires a Host (VS Code Extension) and a Client (Webview with A2UI Renderer).
|
|
26
|
+
- Official A2UI renderers exist for React and Angular; Lit (current project standard) might require a custom adapter or wrapping a React renderer.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 2. Detected Needs
|
|
31
|
+
- **Technical requirements**:
|
|
32
|
+
- VS Code Webview capable of rendering A2UI JSON.
|
|
33
|
+
- Streaming support for real-time AI responses.
|
|
34
|
+
- Multi-modal support (text, code blocks, file attachments).
|
|
35
|
+
- Localization support (Spanish UI labels).
|
|
36
|
+
- **Assumptions and limitations**:
|
|
37
|
+
- The project currently uses `Lit` for webviews.
|
|
38
|
+
- `openai` dependency is present in `package.json` but seemingly unused in `src`.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 3. Technical Findings
|
|
43
|
+
|
|
44
|
+
### A2UI (Agent-to-User Interface)
|
|
45
|
+
- **Concept**: A protocol where AI agents send declarative JSON describing the UI.
|
|
46
|
+
- **Mechanism**:
|
|
47
|
+
1. **Agent** generates JSON (e.g., `{ "type": "button", "label": "Save" }`).
|
|
48
|
+
2. **Host** (Extension) forwards this JSON to the Client.
|
|
49
|
+
3. **Client** (Webview) uses a **Renderer** to map JSON to native components.
|
|
50
|
+
- **State**: Public Preview (v0.8).
|
|
51
|
+
- **Documentation**: [a2ui.org](https://a2ui.org)
|
|
52
|
+
|
|
53
|
+
### Integration with VS Code
|
|
54
|
+
- **Architecture**:
|
|
55
|
+
- **Backend**: Node.js/TypeScript Extension Host. Acts as the A2UI "Server".
|
|
56
|
+
- **Frontend**: Webview. Acts as the A2UI "Client".
|
|
57
|
+
- **Transport**: `webview.postMessage` (Server -> Client) and `vscode.postMessage` (Client -> Server).
|
|
58
|
+
- **Current Codebase State**:
|
|
59
|
+
- `src/extension/modules/app` is a basic Lit-based shell.
|
|
60
|
+
- No conflicting "ChatKit" code found in `src`.
|
|
61
|
+
- `openai` dependency exists (v6.17.0).
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 4. Relevant APIs
|
|
66
|
+
- **VS Code API**:
|
|
67
|
+
- `vscode.window.createWebviewPanel`: To host the UI.
|
|
68
|
+
- `webview.asWebviewUri`: To load safe content.
|
|
69
|
+
- `webview.postMessage`: To stream A2UI chunks.
|
|
70
|
+
- **A2UI Protocol**:
|
|
71
|
+
- `sc-msg` (Server-to-Client): `surfaceUpdate`, `dataModelUpdate`.
|
|
72
|
+
- `cs-msg` (Client-to-Server): `userAction`.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## 5. Multi-browser Compatibility
|
|
77
|
+
- **VS Code Webview**: Uses a dedicated Electron instance (Chromium) on Desktop.
|
|
78
|
+
- **Web Support**: If run in GitHub Codespaces (Browser), A2UI client works as a standard SPA.
|
|
79
|
+
- **Mobile**: Not applicable for this VS Code extension scope.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## 6. Detected AI-first Opportunities
|
|
84
|
+
- **Generative UI**: A2UI allows the agent to invent new UI controls on the fly (e.g., a "Confirm Deploy" card with specific parameters) without deploying new frontend code.
|
|
85
|
+
- **Streaming**: A2UI supports streaming JSON, enabling the UI to build itself token-by-token.
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## 7. Identified Risks
|
|
90
|
+
1. **Renderer Availability for Lit**:
|
|
91
|
+
- **Risk**: Current A2UI SDKs focus on React/Angular. The project uses Lit.
|
|
92
|
+
- **Source**: NPM Registry search for `@a2ui/lit` (not found).
|
|
93
|
+
- **Severity**: High. Might require building a custom renderer or using a React wrapper inside Lit.
|
|
94
|
+
|
|
95
|
+
2. **Localization**:
|
|
96
|
+
- **Risk**: Dynamic JSON from LLM might default to English unless system prompt is strictly controlled.
|
|
97
|
+
- **Source**: LLM behavior.
|
|
98
|
+
- **Severity**: Medium. Requires strict prompting ("Always generate labels in Spanish").
|
|
99
|
+
|
|
100
|
+
3. **Complexity**:
|
|
101
|
+
- **Risk**: Implementing a full A2UI client is complex compared to static HTML.
|
|
102
|
+
- **Source**: A2UI Specification.
|
|
103
|
+
- **Severity**: Medium.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 8. Sources
|
|
108
|
+
- [A2UI Official Site](https://a2ui.org)
|
|
109
|
+
- [VS Code Webview API](https://code.visualstudio.com/api/extension-guides/webview)
|
|
110
|
+
- Project Codebase Analysis (`grep`, `ls`, `package.json`).
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## 9. Developer Approval (MANDATORY)
|
|
115
|
+
```yaml
|
|
116
|
+
approval:
|
|
117
|
+
developer:
|
|
118
|
+
decision: SI
|
|
119
|
+
date: 2026-02-16T12:06:32+01:00
|
|
120
|
+
comments: "Approved via chat to save documentation, but PAUSED execution to switch priority to Task D1."
|
|
121
|
+
```
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 13
|
|
3
|
+
title: Implement Custom Chat with A2UI
|
|
4
|
+
owner: architect-agent
|
|
5
|
+
strategy: long
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Task (Definitive)
|
|
9
|
+
|
|
10
|
+
## Identification
|
|
11
|
+
- id: 13
|
|
12
|
+
- title: Implement Custom Chat with A2UI
|
|
13
|
+
- scope: current
|
|
14
|
+
- owner: architect-agent
|
|
15
|
+
|
|
16
|
+
## Origin
|
|
17
|
+
- created_from:
|
|
18
|
+
- workflow: tasklifecycle-long
|
|
19
|
+
- source: init
|
|
20
|
+
- candidate_path: artifacts.candidate.task
|
|
21
|
+
|
|
22
|
+
## Task Description
|
|
23
|
+
Replace the existing ChatKit integration with a custom chat interface using the A2UI framework (Google's new framework for AI-rendered components). This involves completely removing the `vscode-chatkit` dependency and implementing a new UI that meets the "Spanish chat" requirement while keeping the source code in English.
|
|
24
|
+
|
|
25
|
+
## Objective
|
|
26
|
+
Replace ChatKit with a custom chat interface using A2UI framework/library.
|
|
27
|
+
|
|
28
|
+
## Lifecycle State (SINGLE SOURCE OF TRUTH)
|
|
29
|
+
|
|
30
|
+
```yaml
|
|
31
|
+
task:
|
|
32
|
+
id: "13"
|
|
33
|
+
title: "Implement Custom Chat with A2UI"
|
|
34
|
+
strategy: "long"
|
|
35
|
+
artifacts:
|
|
36
|
+
supplemental: []
|
|
37
|
+
phase:
|
|
38
|
+
current: "phase-2-analysis"
|
|
39
|
+
validated_by: "architect-agent"
|
|
40
|
+
updated_at: "2026-02-16T12:06:32+01:00"
|
|
41
|
+
lifecycle:
|
|
42
|
+
phases:
|
|
43
|
+
phase-0-acceptance-criteria:
|
|
44
|
+
completed: true
|
|
45
|
+
validated_by: "architect-agent"
|
|
46
|
+
validated_at: "2026-02-16T12:00:33+01:00"
|
|
47
|
+
phase-1-research:
|
|
48
|
+
completed: true
|
|
49
|
+
validated_by: "architect-agent"
|
|
50
|
+
validated_at: "2026-02-16T12:06:32+01:00"
|
|
51
|
+
phase-2-analysis:
|
|
52
|
+
completed: false
|
|
53
|
+
validated_by: null
|
|
54
|
+
validated_at: null
|
|
55
|
+
phase-3-planning:
|
|
56
|
+
completed: false
|
|
57
|
+
validated_by: null
|
|
58
|
+
validated_at: null
|
|
59
|
+
phase-4-implementation:
|
|
60
|
+
completed: false
|
|
61
|
+
validated_by: null
|
|
62
|
+
validated_at: null
|
|
63
|
+
phase-5-verification:
|
|
64
|
+
completed: false
|
|
65
|
+
validated_by: null
|
|
66
|
+
validated_at: null
|
|
67
|
+
phase-6-results-acceptance:
|
|
68
|
+
completed: false
|
|
69
|
+
validated_by: null
|
|
70
|
+
validated_at: null
|
|
71
|
+
phase-7-evaluation:
|
|
72
|
+
completed: false
|
|
73
|
+
validated_by: null
|
|
74
|
+
validated_at: null
|
|
75
|
+
phase-8-commit-push:
|
|
76
|
+
completed: false
|
|
77
|
+
validated_by: null
|
|
78
|
+
validated_at: null
|
|
79
|
+
subflows:
|
|
80
|
+
components:
|
|
81
|
+
create: []
|
|
82
|
+
refactor: []
|
|
83
|
+
delete: []
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## 2. Definition and Scope (Contract)
|
|
89
|
+
- **Acceptance Criteria**: [acceptance.md](file:///.agent/artifacts/13-implement-custom-chat-with-a2ui/acceptance.md)
|
|
90
|
+
- **Alias**: `task.acceptance`
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Contractual Rules
|
|
95
|
+
- This file is the **single source of truth** of the task state.
|
|
96
|
+
- The `task.phase.current` field can **ONLY be modified by `architect-agent`**.
|
|
97
|
+
- The `task.lifecycle.phases.*` field can **ONLY be marked as completed by `architect-agent`**.
|
|
98
|
+
- A phase **CANNOT be marked as completed** if it is not the current phase.
|
|
99
|
+
- Phase advancement requires:
|
|
100
|
+
1. Marking the current phase as `completed: true`
|
|
101
|
+
2. Explicit architect validation
|
|
102
|
+
3. Updating `task.phase.current` to the next phase
|
|
103
|
+
|
|
104
|
+
> **STATUS NOTE**: Task PAUSED at Phase 2 Analysis entry point.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Acceptance Criteria — 14-Re-implement Setup/Config (D1)
|
|
2
|
+
|
|
3
|
+
## Agent Identification (MANDATORY)
|
|
4
|
+
First line of the document:
|
|
5
|
+
`<icon> **<agent-name>**: <message>`
|
|
6
|
+
|
|
7
|
+
## 1. Consolidated Definition
|
|
8
|
+
The user requires a complete re-implementation of the Setup and Configuration domain (D1). This involves abstracting the "Core" to expose secure methods for accessing settings. The settings to be persisted include LLM Models (selection), OAuth/API Keys, Language, and Theme. The storage mechanism must follow security best practices (likely `SecretStorage` for keys and `GlobalState` for non-sensitive data). The UI must be built using **Lit** and **Google Material Design**, ensuring a premium look and feel. There is no legacy data to migrate.
|
|
9
|
+
|
|
10
|
+
## 2. Answers to Clarification Questions
|
|
11
|
+
> This section documents the developer's answers to the 5 questions formulated by the architect-agent.
|
|
12
|
+
|
|
13
|
+
| # | Question (formulated by architect) | Answer (from developer) |
|
|
14
|
+
|---|-----------------------------------|------------------------|
|
|
15
|
+
| 1 | **Scope of Settings**: What specific settings must be persisted? | LLM -models (model selected), oAuth o API keys, Histori chat (pero es para otra tarea), language, theme |
|
|
16
|
+
| 2 | **Storage Mechanism**: Should `SettingsStorage` use VS Code `globalState`/`workspaceState`, `secretStorage` (for keys), or a local JSON file? | Analizar la mejor solucion desde la perspectiva de seguridad y recomendacion de vscode |
|
|
17
|
+
| 3 | **UI Framework**: Confirming usage of **Lit**. Should it be a standalone Webview (Settings Page) or integrated into the Chat Sidepanel? | Lit y Material Design de Google |
|
|
18
|
+
| 4 | **Backend Logic**: Does the `core/background` layer need to expose a specific API (e.g., `getSettings`, `updateSettings`) via the message bus? | Core siempre es abstracto, puedo exponer metodos para acceder a datos seguros y poder asegurar que todos los modulos mantienen la seguridad |
|
|
19
|
+
| 5 | **Migration**: Is there legacy data/configuration that needs to be migrated, or do we start with a fresh schema? | No, es nuevo |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 3. Verifiable Acceptance Criteria
|
|
24
|
+
> List of criteria derived from the previous answers that must be verified in Phase 5.
|
|
25
|
+
|
|
26
|
+
1. Scope:
|
|
27
|
+
- Implement `SettingsStorage` service in `core/background`.
|
|
28
|
+
- Implement Settings UI using **Lit** and **Material Design** components.
|
|
29
|
+
- Expose abstract methods in Core for secure data access.
|
|
30
|
+
|
|
31
|
+
2. Inputs / Data:
|
|
32
|
+
- User inputs API Keys (securely masked).
|
|
33
|
+
- User selects LLM Model from a dropdown.
|
|
34
|
+
- User selects Language and Theme.
|
|
35
|
+
|
|
36
|
+
3. Outputs / Expected Result:
|
|
37
|
+
- Settings are persisted across VS Code restarts.
|
|
38
|
+
- API Keys are stored in VS Code `SecretStorage`.
|
|
39
|
+
- Non-sensitive settings are stored in `GlobalState` or `WorkspaceState`.
|
|
40
|
+
- UI reflects current settings state.
|
|
41
|
+
|
|
42
|
+
4. Constraints:
|
|
43
|
+
- Must use **Lit** framework.
|
|
44
|
+
- Must use **Material Design** tokens/styles.
|
|
45
|
+
- Core layer must remain abstract and secure.
|
|
46
|
+
|
|
47
|
+
5. Acceptance Criterion (Done):
|
|
48
|
+
- A functional Settings UI where users can configure the agent.
|
|
49
|
+
- Verification that keys are not stored in plain text.
|
|
50
|
+
- A clean, premium UI that matches Google's Material Design standards.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Approval (Gate 0)
|
|
55
|
+
This document constitutes the task contract. Its approval is blocking to proceed to Phase 1.
|
|
56
|
+
|
|
57
|
+
```yaml
|
|
58
|
+
approval:
|
|
59
|
+
developer:
|
|
60
|
+
decision: SI
|
|
61
|
+
date: 2026-02-16T12:14:51+01:00
|
|
62
|
+
comments: "Approved via chat"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Validation History (Phase 0)
|
|
68
|
+
```yaml
|
|
69
|
+
history:
|
|
70
|
+
- phase: "phase-0-acceptance-criteria"
|
|
71
|
+
action: "completed"
|
|
72
|
+
validated_by: "architect-agent"
|
|
73
|
+
timestamp: "2026-02-16T12:13:54+01:00"
|
|
74
|
+
notes: "Acceptance criteria defined"
|
|
75
|
+
```
|