@mcp-graph-workflow/mcp-graph 5.1.4 → 5.2.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/dist/api/router.d.ts +1 -0
- package/dist/api/router.d.ts.map +1 -1
- package/dist/api/router.js +3 -2
- package/dist/api/router.js.map +1 -1
- package/dist/api/routes/folder.d.ts +4 -1
- package/dist/api/routes/folder.d.ts.map +1 -1
- package/dist/api/routes/folder.js +20 -1
- package/dist/api/routes/folder.js.map +1 -1
- package/dist/api/routes/gitnexus.d.ts.map +1 -1
- package/dist/api/routes/gitnexus.js +3 -1
- package/dist/api/routes/gitnexus.js.map +1 -1
- package/dist/core/analyzer/ac-parser.d.ts +7 -0
- package/dist/core/analyzer/ac-parser.d.ts.map +1 -0
- package/dist/core/analyzer/ac-parser.js +67 -0
- package/dist/core/analyzer/ac-parser.js.map +1 -0
- package/dist/core/analyzer/ac-validator.d.ts +15 -0
- package/dist/core/analyzer/ac-validator.d.ts.map +1 -0
- package/dist/core/analyzer/ac-validator.js +142 -0
- package/dist/core/analyzer/ac-validator.js.map +1 -0
- package/dist/core/analyzer/definition-of-ready.d.ts +16 -0
- package/dist/core/analyzer/definition-of-ready.d.ts.map +1 -0
- package/dist/core/analyzer/definition-of-ready.js +107 -0
- package/dist/core/analyzer/definition-of-ready.js.map +1 -0
- package/dist/core/analyzer/prd-quality.d.ts +14 -0
- package/dist/core/analyzer/prd-quality.d.ts.map +1 -0
- package/dist/core/analyzer/prd-quality.js +156 -0
- package/dist/core/analyzer/prd-quality.js.map +1 -0
- package/dist/core/analyzer/risk-assessment.d.ts +11 -0
- package/dist/core/analyzer/risk-assessment.d.ts.map +1 -0
- package/dist/core/analyzer/risk-assessment.js +97 -0
- package/dist/core/analyzer/risk-assessment.js.map +1 -0
- package/dist/core/analyzer/scope-analyzer.d.ts +7 -0
- package/dist/core/analyzer/scope-analyzer.d.ts.map +1 -0
- package/dist/core/analyzer/scope-analyzer.js +99 -0
- package/dist/core/analyzer/scope-analyzer.js.map +1 -0
- package/dist/core/config/ai-memory-generator.d.ts.map +1 -1
- package/dist/core/config/ai-memory-generator.js +8 -11
- package/dist/core/config/ai-memory-generator.js.map +1 -1
- package/dist/core/context/context-assembler.d.ts +3 -0
- package/dist/core/context/context-assembler.d.ts.map +1 -1
- package/dist/core/context/context-assembler.js +5 -2
- package/dist/core/context/context-assembler.js.map +1 -1
- package/dist/core/context/rag-context.d.ts +4 -2
- package/dist/core/context/rag-context.d.ts.map +1 -1
- package/dist/core/context/rag-context.js +8 -5
- package/dist/core/context/rag-context.js.map +1 -1
- package/dist/core/designer/adr-validator.d.ts +8 -0
- package/dist/core/designer/adr-validator.d.ts.map +1 -0
- package/dist/core/designer/adr-validator.js +61 -0
- package/dist/core/designer/adr-validator.js.map +1 -0
- package/dist/core/designer/coupling-analyzer.d.ts +7 -0
- package/dist/core/designer/coupling-analyzer.d.ts.map +1 -0
- package/dist/core/designer/coupling-analyzer.js +59 -0
- package/dist/core/designer/coupling-analyzer.js.map +1 -0
- package/dist/core/designer/definition-of-ready.d.ts +8 -0
- package/dist/core/designer/definition-of-ready.d.ts.map +1 -0
- package/dist/core/designer/definition-of-ready.js +146 -0
- package/dist/core/designer/definition-of-ready.js.map +1 -0
- package/dist/core/designer/interface-checker.d.ts +7 -0
- package/dist/core/designer/interface-checker.d.ts.map +1 -0
- package/dist/core/designer/interface-checker.js +53 -0
- package/dist/core/designer/interface-checker.js.map +1 -0
- package/dist/core/designer/tech-risk-assessor.d.ts +7 -0
- package/dist/core/designer/tech-risk-assessor.d.ts.map +1 -0
- package/dist/core/designer/tech-risk-assessor.js +95 -0
- package/dist/core/designer/tech-risk-assessor.js.map +1 -0
- package/dist/core/designer/traceability-matrix.d.ts +8 -0
- package/dist/core/designer/traceability-matrix.d.ts.map +1 -0
- package/dist/core/designer/traceability-matrix.js +67 -0
- package/dist/core/designer/traceability-matrix.js.map +1 -0
- package/dist/core/events/event-types.d.ts +11 -1
- package/dist/core/events/event-types.d.ts.map +1 -1
- package/dist/core/handoff/delivery-checklist.d.ts +10 -0
- package/dist/core/handoff/delivery-checklist.d.ts.map +1 -0
- package/dist/core/handoff/delivery-checklist.js +148 -0
- package/dist/core/handoff/delivery-checklist.js.map +1 -0
- package/dist/core/handoff/doc-completeness.d.ts +7 -0
- package/dist/core/handoff/doc-completeness.d.ts.map +1 -0
- package/dist/core/handoff/doc-completeness.js +19 -0
- package/dist/core/handoff/doc-completeness.js.map +1 -0
- package/dist/core/implementer/definition-of-done.d.ts +11 -0
- package/dist/core/implementer/definition-of-done.d.ts.map +1 -0
- package/dist/core/implementer/definition-of-done.js +158 -0
- package/dist/core/implementer/definition-of-done.js.map +1 -0
- package/dist/core/implementer/sprint-progress.d.ts +11 -0
- package/dist/core/implementer/sprint-progress.d.ts.map +1 -0
- package/dist/core/implementer/sprint-progress.js +80 -0
- package/dist/core/implementer/sprint-progress.js.map +1 -0
- package/dist/core/implementer/tdd-checker.d.ts +15 -0
- package/dist/core/implementer/tdd-checker.d.ts.map +1 -0
- package/dist/core/implementer/tdd-checker.js +132 -0
- package/dist/core/implementer/tdd-checker.js.map +1 -0
- package/dist/core/integrations/gitnexus-launcher.d.ts +5 -0
- package/dist/core/integrations/gitnexus-launcher.d.ts.map +1 -1
- package/dist/core/integrations/gitnexus-launcher.js +30 -3
- package/dist/core/integrations/gitnexus-launcher.js.map +1 -1
- package/dist/core/listener/backlog-health.d.ts +7 -0
- package/dist/core/listener/backlog-health.d.ts.map +1 -0
- package/dist/core/listener/backlog-health.js +64 -0
- package/dist/core/listener/backlog-health.js.map +1 -0
- package/dist/core/listener/feedback-readiness.d.ts +11 -0
- package/dist/core/listener/feedback-readiness.d.ts.map +1 -0
- package/dist/core/listener/feedback-readiness.js +124 -0
- package/dist/core/listener/feedback-readiness.js.map +1 -0
- package/dist/core/planner/lifecycle-phase.d.ts +26 -3
- package/dist/core/planner/lifecycle-phase.d.ts.map +1 -1
- package/dist/core/planner/lifecycle-phase.js +209 -17
- package/dist/core/planner/lifecycle-phase.js.map +1 -1
- package/dist/core/rag/phase-metadata.d.ts +23 -0
- package/dist/core/rag/phase-metadata.d.ts.map +1 -0
- package/dist/core/rag/phase-metadata.js +72 -0
- package/dist/core/rag/phase-metadata.js.map +1 -0
- package/dist/core/rag/phase-summary.d.ts +17 -0
- package/dist/core/rag/phase-summary.d.ts.map +1 -0
- package/dist/core/rag/phase-summary.js +104 -0
- package/dist/core/rag/phase-summary.js.map +1 -0
- package/dist/core/rag/prd-indexer.d.ts +16 -0
- package/dist/core/rag/prd-indexer.d.ts.map +1 -0
- package/dist/core/rag/prd-indexer.js +37 -0
- package/dist/core/rag/prd-indexer.js.map +1 -0
- package/dist/core/reviewer/review-readiness.d.ts +8 -0
- package/dist/core/reviewer/review-readiness.d.ts.map +1 -0
- package/dist/core/reviewer/review-readiness.js +159 -0
- package/dist/core/reviewer/review-readiness.js.map +1 -0
- package/dist/core/store/knowledge-store.d.ts +9 -0
- package/dist/core/store/knowledge-store.d.ts.map +1 -1
- package/dist/core/store/knowledge-store.js +22 -0
- package/dist/core/store/knowledge-store.js.map +1 -1
- package/dist/core/utils/errors.d.ts +7 -0
- package/dist/core/utils/errors.d.ts.map +1 -1
- package/dist/core/utils/errors.js +14 -0
- package/dist/core/utils/errors.js.map +1 -1
- package/dist/core/validator/definition-of-ready.d.ts +8 -0
- package/dist/core/validator/definition-of-ready.d.ts.map +1 -0
- package/dist/core/validator/definition-of-ready.js +155 -0
- package/dist/core/validator/definition-of-ready.js.map +1 -0
- package/dist/core/validator/done-integrity-checker.d.ts +7 -0
- package/dist/core/validator/done-integrity-checker.d.ts.map +1 -0
- package/dist/core/validator/done-integrity-checker.js +38 -0
- package/dist/core/validator/done-integrity-checker.js.map +1 -0
- package/dist/core/validator/status-flow-checker.d.ts +7 -0
- package/dist/core/validator/status-flow-checker.d.ts.map +1 -0
- package/dist/core/validator/status-flow-checker.js +26 -0
- package/dist/core/validator/status-flow-checker.js.map +1 -0
- package/dist/mcp/app-factory.d.ts +1 -0
- package/dist/mcp/app-factory.d.ts.map +1 -1
- package/dist/mcp/app-factory.js +2 -2
- package/dist/mcp/app-factory.js.map +1 -1
- package/dist/mcp/lifecycle-wrapper.d.ts +14 -4
- package/dist/mcp/lifecycle-wrapper.d.ts.map +1 -1
- package/dist/mcp/lifecycle-wrapper.js +104 -5
- package/dist/mcp/lifecycle-wrapper.js.map +1 -1
- package/dist/mcp/server.js +3 -2
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/{stats.d.ts → analyze.d.ts} +2 -2
- package/dist/mcp/tools/analyze.d.ts.map +1 -0
- package/dist/mcp/tools/analyze.js +272 -0
- package/dist/mcp/tools/analyze.js.map +1 -0
- package/dist/mcp/tools/import-prd.d.ts.map +1 -1
- package/dist/mcp/tools/import-prd.js +15 -1
- package/dist/mcp/tools/import-prd.js.map +1 -1
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +6 -10
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/{velocity.d.ts → metrics.d.ts} +2 -2
- package/dist/mcp/tools/metrics.d.ts.map +1 -0
- package/dist/mcp/tools/metrics.js +69 -0
- package/dist/mcp/tools/metrics.js.map +1 -0
- package/dist/mcp/tools/next.d.ts.map +1 -1
- package/dist/mcp/tools/next.js +19 -5
- package/dist/mcp/tools/next.js.map +1 -1
- package/dist/mcp/tools/plan-sprint.d.ts.map +1 -1
- package/dist/mcp/tools/plan-sprint.js +20 -0
- package/dist/mcp/tools/plan-sprint.js.map +1 -1
- package/dist/mcp/tools/rag-context.d.ts.map +1 -1
- package/dist/mcp/tools/rag-context.js +20 -5
- package/dist/mcp/tools/rag-context.js.map +1 -1
- package/dist/mcp/tools/set-phase.d.ts.map +1 -1
- package/dist/mcp/tools/set-phase.js +64 -6
- package/dist/mcp/tools/set-phase.js.map +1 -1
- package/dist/mcp/tools/update-status.d.ts.map +1 -1
- package/dist/mcp/tools/update-status.js +21 -6
- package/dist/mcp/tools/update-status.js.map +1 -1
- package/dist/mcp/tools/{decompose.d.ts → validate-ac.d.ts} +2 -2
- package/dist/mcp/tools/validate-ac.d.ts.map +1 -0
- package/dist/mcp/tools/validate-ac.js +23 -0
- package/dist/mcp/tools/validate-ac.js.map +1 -0
- package/dist/schemas/ac-quality-schema.d.ts +90 -0
- package/dist/schemas/ac-quality-schema.d.ts.map +1 -0
- package/dist/schemas/ac-quality-schema.js +34 -0
- package/dist/schemas/ac-quality-schema.js.map +1 -0
- package/dist/schemas/analyzer-schema.d.ts +160 -0
- package/dist/schemas/analyzer-schema.d.ts.map +1 -0
- package/dist/schemas/analyzer-schema.js +74 -0
- package/dist/schemas/analyzer-schema.js.map +1 -0
- package/dist/schemas/designer-schema.d.ts +259 -0
- package/dist/schemas/designer-schema.d.ts.map +1 -0
- package/dist/schemas/designer-schema.js +102 -0
- package/dist/schemas/designer-schema.js.map +1 -0
- package/dist/schemas/handoff-schema.d.ts +49 -0
- package/dist/schemas/handoff-schema.d.ts.map +1 -0
- package/dist/schemas/handoff-schema.js +28 -0
- package/dist/schemas/handoff-schema.js.map +1 -0
- package/dist/schemas/implementer-schema.d.ts +187 -0
- package/dist/schemas/implementer-schema.d.ts.map +1 -0
- package/dist/schemas/implementer-schema.js +80 -0
- package/dist/schemas/implementer-schema.js.map +1 -0
- package/dist/schemas/knowledge.schema.d.ts +8 -0
- package/dist/schemas/knowledge.schema.d.ts.map +1 -1
- package/dist/schemas/knowledge.schema.js +1 -1
- package/dist/schemas/knowledge.schema.js.map +1 -1
- package/dist/schemas/listener-schema.d.ts +62 -0
- package/dist/schemas/listener-schema.d.ts.map +1 -0
- package/dist/schemas/listener-schema.js +35 -0
- package/dist/schemas/listener-schema.js.map +1 -0
- package/dist/schemas/reviewer-schema.d.ts +34 -0
- package/dist/schemas/reviewer-schema.d.ts.map +1 -0
- package/dist/schemas/reviewer-schema.js +17 -0
- package/dist/schemas/reviewer-schema.js.map +1 -0
- package/dist/schemas/validator-schema.d.ts +79 -0
- package/dist/schemas/validator-schema.d.ts.map +1 -0
- package/dist/schemas/validator-schema.js +43 -0
- package/dist/schemas/validator-schema.js.map +1 -0
- package/dist/web/dashboard/dist/assets/{benchmark-tab-CuZsNkbP.js → benchmark-tab-DE6hAHVG.js} +1 -1
- package/dist/web/dashboard/dist/assets/gitnexus-tab-DsBjJHx8.js +312 -0
- package/dist/web/dashboard/dist/assets/graph-tab-C09DzeZ_.js +1 -0
- package/dist/web/dashboard/dist/assets/{graph-utils-D5iPoiPD.js → graph-utils-D4LFspTf.js} +5 -5
- package/dist/web/dashboard/dist/assets/{index-CN9Wi5mu.js → index-B2fTJ4AS.js} +2 -2
- package/dist/web/dashboard/dist/assets/index-CkqEqKiH.css +1 -0
- package/dist/web/dashboard/dist/assets/{insights-tab-CLA0OIxd.js → insights-tab-Bm7CDckb.js} +1 -1
- package/dist/web/dashboard/dist/assets/{logs-tab-CSYlvuCu.js → logs-tab-Cxpcv_ni.js} +1 -1
- package/dist/web/dashboard/dist/assets/{prd-backlog-tab-BBLpErTk.js → prd-backlog-tab-X84Rj-IB.js} +1 -1
- package/dist/web/dashboard/dist/assets/{serena-tab-BxYP8nU5.js → serena-tab-BunULNvw.js} +1 -1
- package/dist/web/dashboard/dist/index.html +2 -2
- package/package.json +1 -1
- package/dist/mcp/tools/bulk-update-status.d.ts +0 -4
- package/dist/mcp/tools/bulk-update-status.d.ts.map +0 -1
- package/dist/mcp/tools/bulk-update-status.js +0 -22
- package/dist/mcp/tools/bulk-update-status.js.map +0 -1
- package/dist/mcp/tools/decompose.d.ts.map +0 -1
- package/dist/mcp/tools/decompose.js +0 -25
- package/dist/mcp/tools/decompose.js.map +0 -1
- package/dist/mcp/tools/dependencies.d.ts +0 -4
- package/dist/mcp/tools/dependencies.d.ts.map +0 -1
- package/dist/mcp/tools/dependencies.js +0 -47
- package/dist/mcp/tools/dependencies.js.map +0 -1
- package/dist/mcp/tools/stats.d.ts.map +0 -1
- package/dist/mcp/tools/stats.js +0 -46
- package/dist/mcp/tools/stats.js.map +0 -1
- package/dist/mcp/tools/velocity.d.ts.map +0 -1
- package/dist/mcp/tools/velocity.js +0 -25
- package/dist/mcp/tools/velocity.js.map +0 -1
- package/dist/web/dashboard/dist/assets/gitnexus-tab-D7If6lxT.js +0 -312
- package/dist/web/dashboard/dist/assets/graph-tab-Dp7PfUEJ.js +0 -1
- package/dist/web/dashboard/dist/assets/index-BUl7yWBP.css +0 -1
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
import { parseAc } from "../analyzer/ac-parser.js";
|
|
2
|
+
import { checkDesignReadiness } from "../designer/definition-of-ready.js";
|
|
3
|
+
import { checkDefinitionOfDone } from "../implementer/definition-of-done.js";
|
|
4
|
+
import { checkValidationReadiness } from "../validator/definition-of-ready.js";
|
|
5
|
+
import { checkReviewReadiness } from "../reviewer/review-readiness.js";
|
|
6
|
+
import { checkHandoffReadiness } from "../handoff/delivery-checklist.js";
|
|
7
|
+
import { checkListeningReadiness } from "../listener/feedback-readiness.js";
|
|
1
8
|
const DESIGN_ONLY_TYPES = new Set(["requirement", "epic", "decision", "constraint", "milestone", "risk", "acceptance_criteria"]);
|
|
2
9
|
const TASK_TYPES = new Set(["task", "subtask"]);
|
|
3
10
|
const FEEDBACK_TYPES = new Set(["requirement", "risk", "constraint"]);
|
|
@@ -77,13 +84,13 @@ function hasNewFeedbackNodes(nodes, doneTasks) {
|
|
|
77
84
|
const GUIDANCE = {
|
|
78
85
|
ANALYZE: {
|
|
79
86
|
reminder: "Fase ANALYZE: Crie o PRD a partir da ideia. Defina requisitos, restrições e critérios de aceitação antes de qualquer código.",
|
|
80
|
-
suggestedTools: ["import_prd", "add_node", "search"],
|
|
87
|
+
suggestedTools: ["import_prd", "add_node", "analyze", "validate_ac", "search"],
|
|
81
88
|
principles: ["Definir antes de construir", "PRD como contrato", "Requisitos claros e mensuráveis"],
|
|
82
89
|
},
|
|
83
90
|
DESIGN: {
|
|
84
|
-
reminder: "Fase DESIGN: Defina a arquitetura e tome decisões técnicas. Use
|
|
85
|
-
suggestedTools: ["add_node", "edge", "
|
|
86
|
-
principles: ["Skeleton & Organs", "
|
|
91
|
+
reminder: "Fase DESIGN: Defina a arquitetura e tome decisões técnicas. Use analyze para validar qualidade arquitetural.",
|
|
92
|
+
suggestedTools: ["add_node", "edge", "analyze", "export"],
|
|
93
|
+
principles: ["Skeleton & Organs", "ADR documentado", "Interface-first", "Traceability"],
|
|
87
94
|
suggestedMcpAgents: [
|
|
88
95
|
{ name: "serena", action: "Análise semântica de symbols para entender arquitetura existente", tools: ["find_symbol", "get_symbols_overview"] },
|
|
89
96
|
{ name: "gitnexus", action: "Análise de impacto e blast radius da proposta arquitetural", tools: ["impact", "context"] },
|
|
@@ -91,7 +98,7 @@ const GUIDANCE = {
|
|
|
91
98
|
},
|
|
92
99
|
PLAN: {
|
|
93
100
|
reminder: "Fase PLAN: Planeje o sprint, decomponha tasks grandes e sincronize documentação das libs.",
|
|
94
|
-
suggestedTools: ["plan_sprint", "
|
|
101
|
+
suggestedTools: ["plan_sprint", "analyze", "sync_stack_docs", "edge"],
|
|
95
102
|
principles: ["Decomposição atômica", "Sprint planning baseado em velocidade", "Dependências explícitas"],
|
|
96
103
|
suggestedMcpAgents: [
|
|
97
104
|
{ name: "context7", action: "Consultar docs atualizadas das libs do stack", tools: ["resolve-library-id", "query-docs"] },
|
|
@@ -99,7 +106,7 @@ const GUIDANCE = {
|
|
|
99
106
|
},
|
|
100
107
|
IMPLEMENT: {
|
|
101
108
|
reminder: "Fase IMPLEMENT: TDD obrigatório — Red → Green → Refactor. Escreva o teste ANTES da implementação. Use `context` para token-efficiency.",
|
|
102
|
-
suggestedTools: ["next", "context", "update_status", "rag_context", "validate_task"],
|
|
109
|
+
suggestedTools: ["next", "context", "update_status", "rag_context", "validate_task", "analyze"],
|
|
103
110
|
principles: ["TDD Red→Green→Refactor", "Anti-one-shot", "Code detachment", "Decomposição atômica"],
|
|
104
111
|
suggestedMcpAgents: [
|
|
105
112
|
{ name: "serena", action: "Edição semântica de symbols e navegação por referências", tools: ["find_symbol", "replace_symbol_body", "find_referencing_symbols"] },
|
|
@@ -109,8 +116,8 @@ const GUIDANCE = {
|
|
|
109
116
|
},
|
|
110
117
|
VALIDATE: {
|
|
111
118
|
reminder: "Fase VALIDATE: Valide tasks completadas com testes E2E (Playwright). Verifique critérios de aceitação.",
|
|
112
|
-
suggestedTools: ["validate_task", "
|
|
113
|
-
principles: ["Validação automatizada", "Critérios de aceitação como contrato", "Zero tolerance para regressões"],
|
|
119
|
+
suggestedTools: ["validate_task", "metrics", "analyze", "list"],
|
|
120
|
+
principles: ["Validação automatizada", "Critérios de aceitação como contrato", "Zero tolerance para regressões", "AC quality como contrato", "Done integrity"],
|
|
114
121
|
suggestedMcpAgents: [
|
|
115
122
|
{ name: "gitnexus", action: "Verificar escopo das mudanças com detect_changes", tools: ["detect_changes"] },
|
|
116
123
|
{ name: "playwright", action: "Testes E2E no browser, screenshots e validação visual", tools: ["browser_navigate", "browser_snapshot", "browser_click"] },
|
|
@@ -118,8 +125,8 @@ const GUIDANCE = {
|
|
|
118
125
|
},
|
|
119
126
|
REVIEW: {
|
|
120
127
|
reminder: "Fase REVIEW: Revise o código, verifique blast radius e garanta que nada quebrou. Exporte o grafo para revisão.",
|
|
121
|
-
suggestedTools: ["export", "
|
|
122
|
-
principles: ["Code review obrigatório", "Blast radius check", "Non-regression rule"],
|
|
128
|
+
suggestedTools: ["export", "metrics", "analyze"],
|
|
129
|
+
principles: ["Code review obrigatório", "Blast radius check", "Non-regression rule", "Velocity stability", "Scope integrity"],
|
|
123
130
|
suggestedMcpAgents: [
|
|
124
131
|
{ name: "serena", action: "Verificar callers e referências dos symbols modificados", tools: ["find_referencing_symbols"] },
|
|
125
132
|
{ name: "gitnexus", action: "Blast radius final e verificação de escopo", tools: ["impact", "detect_changes"] },
|
|
@@ -127,28 +134,213 @@ const GUIDANCE = {
|
|
|
127
134
|
},
|
|
128
135
|
HANDOFF: {
|
|
129
136
|
reminder: "Fase HANDOFF: Crie o PR, documente decisões e exporte o grafo. Prepare para entrega.",
|
|
130
|
-
suggestedTools: ["export", "snapshot", "
|
|
131
|
-
principles: ["Documentação como entrega", "Grafo exportado", "Knowledge base atualizada"],
|
|
137
|
+
suggestedTools: ["export", "snapshot", "metrics", "analyze"],
|
|
138
|
+
principles: ["Documentação como entrega", "Grafo exportado", "Knowledge base atualizada", "Doc completeness", "Knowledge captured"],
|
|
132
139
|
suggestedMcpAgents: [
|
|
133
140
|
{ name: "gitnexus", action: "Scope check final antes do PR", tools: ["detect_changes"] },
|
|
134
141
|
],
|
|
135
142
|
},
|
|
136
143
|
LISTENING: {
|
|
137
144
|
reminder: "Fase LISTENING: Colete feedback e adicione novos nodes ao grafo. Inicie novo ciclo se necessário.",
|
|
138
|
-
suggestedTools: ["add_node", "import_prd", "search", "list"],
|
|
139
|
-
principles: ["Feedback contínuo", "Iteração incremental", "CLAUDE.md como spec evolutiva"],
|
|
145
|
+
suggestedTools: ["add_node", "import_prd", "search", "list", "analyze"],
|
|
146
|
+
principles: ["Feedback contínuo", "Iteração incremental", "CLAUDE.md como spec evolutiva", "Backlog health", "Tech debt tracking"],
|
|
140
147
|
},
|
|
141
148
|
};
|
|
142
149
|
export function getPhaseGuidance(phase) {
|
|
143
150
|
return GUIDANCE[phase];
|
|
144
151
|
}
|
|
152
|
+
const PHASE_GATES = {
|
|
153
|
+
ANALYZE_to_DESIGN: (doc) => {
|
|
154
|
+
const hasEpicOrRequirement = doc.nodes.some((n) => n.type === "epic" || n.type === "requirement");
|
|
155
|
+
return {
|
|
156
|
+
allowed: hasEpicOrRequirement,
|
|
157
|
+
reason: hasEpicOrRequirement ? null : "Nenhum epic ou requirement encontrado",
|
|
158
|
+
unmetConditions: hasEpicOrRequirement ? [] : ["Criar pelo menos 1 node tipo 'epic' ou 'requirement'"],
|
|
159
|
+
};
|
|
160
|
+
},
|
|
161
|
+
DESIGN_to_PLAN: (doc) => {
|
|
162
|
+
const report = checkDesignReadiness(doc);
|
|
163
|
+
return {
|
|
164
|
+
allowed: report.ready,
|
|
165
|
+
reason: report.ready ? null : report.summary,
|
|
166
|
+
unmetConditions: report.checks
|
|
167
|
+
.filter((c) => c.severity === "required" && !c.passed)
|
|
168
|
+
.map((c) => c.details),
|
|
169
|
+
};
|
|
170
|
+
},
|
|
171
|
+
PLAN_to_IMPLEMENT: (doc) => {
|
|
172
|
+
const tasks = doc.nodes.filter((n) => TASK_TYPES.has(n.type));
|
|
173
|
+
const hasSprints = tasks.some((n) => n.sprint != null);
|
|
174
|
+
return {
|
|
175
|
+
allowed: hasSprints,
|
|
176
|
+
reason: hasSprints ? null : "Nenhuma task com sprint atribuído",
|
|
177
|
+
unmetConditions: hasSprints ? [] : ["Atribuir sprint a pelo menos 1 task"],
|
|
178
|
+
};
|
|
179
|
+
},
|
|
180
|
+
IMPLEMENT_to_VALIDATE: (doc) => {
|
|
181
|
+
const report = checkValidationReadiness(doc);
|
|
182
|
+
// Additional recommended check: ≥50% done tasks have testable AC
|
|
183
|
+
const tasks = doc.nodes.filter((n) => TASK_TYPES.has(n.type));
|
|
184
|
+
const doneTasks = tasks.filter((n) => n.status === "done");
|
|
185
|
+
const doneWithTestableAc = doneTasks.filter((n) => {
|
|
186
|
+
const acs = n.acceptanceCriteria ?? [];
|
|
187
|
+
return acs.some((ac) => parseAc(ac).isTestable);
|
|
188
|
+
});
|
|
189
|
+
const testableRatio = doneTasks.length > 0 ? doneWithTestableAc.length / doneTasks.length : 0;
|
|
190
|
+
const conditions = report.checks
|
|
191
|
+
.filter((c) => c.severity === "required" && !c.passed)
|
|
192
|
+
.map((c) => c.details);
|
|
193
|
+
// Testable AC is recommended (warning), not required
|
|
194
|
+
if (testableRatio < 0.5 && doneTasks.length > 0) {
|
|
195
|
+
conditions.push(`Recomendado: ≥50% das done tasks com AC testável (atual: ${Math.round(testableRatio * 100)}%)`);
|
|
196
|
+
}
|
|
197
|
+
return {
|
|
198
|
+
allowed: report.ready,
|
|
199
|
+
reason: report.ready ? null : report.summary,
|
|
200
|
+
unmetConditions: conditions,
|
|
201
|
+
};
|
|
202
|
+
},
|
|
203
|
+
VALIDATE_to_REVIEW: (doc) => {
|
|
204
|
+
const report = checkReviewReadiness(doc);
|
|
205
|
+
return {
|
|
206
|
+
allowed: report.ready,
|
|
207
|
+
reason: report.ready ? null : report.summary,
|
|
208
|
+
unmetConditions: report.checks
|
|
209
|
+
.filter((c) => c.severity === "required" && !c.passed)
|
|
210
|
+
.map((c) => c.details),
|
|
211
|
+
};
|
|
212
|
+
},
|
|
213
|
+
REVIEW_to_HANDOFF: (doc) => {
|
|
214
|
+
const report = checkHandoffReadiness(doc);
|
|
215
|
+
return {
|
|
216
|
+
allowed: report.ready,
|
|
217
|
+
reason: report.ready ? null : report.summary,
|
|
218
|
+
unmetConditions: report.checks
|
|
219
|
+
.filter((c) => c.severity === "required" && !c.passed)
|
|
220
|
+
.map((c) => c.details),
|
|
221
|
+
};
|
|
222
|
+
},
|
|
223
|
+
HANDOFF_to_LISTENING: (doc) => {
|
|
224
|
+
const report = checkListeningReadiness(doc);
|
|
225
|
+
return {
|
|
226
|
+
allowed: report.ready,
|
|
227
|
+
reason: report.ready ? null : report.summary,
|
|
228
|
+
unmetConditions: report.checks
|
|
229
|
+
.filter((c) => c.severity === "required" && !c.passed)
|
|
230
|
+
.map((c) => c.details),
|
|
231
|
+
};
|
|
232
|
+
},
|
|
233
|
+
};
|
|
234
|
+
/**
|
|
235
|
+
* Validate whether a phase transition is allowed based on graph state.
|
|
236
|
+
*/
|
|
237
|
+
export function validatePhaseTransition(doc, fromPhase, toPhase) {
|
|
238
|
+
const key = `${fromPhase}_to_${toPhase}`;
|
|
239
|
+
const gate = PHASE_GATES[key];
|
|
240
|
+
if (!gate) {
|
|
241
|
+
// No gate defined for this transition — allowed by default
|
|
242
|
+
return { allowed: true, reason: null, unmetConditions: [] };
|
|
243
|
+
}
|
|
244
|
+
return gate(doc);
|
|
245
|
+
}
|
|
246
|
+
// ── Tool Phase Restrictions ────────────────────
|
|
247
|
+
const TOOL_PHASE_RESTRICTIONS = {
|
|
248
|
+
update_status: new Set(["ANALYZE"]),
|
|
249
|
+
plan_sprint: new Set(["ANALYZE"]),
|
|
250
|
+
validate_task: new Set(["ANALYZE", "DESIGN", "PLAN"]),
|
|
251
|
+
};
|
|
252
|
+
const ALWAYS_ALLOWED_TOOLS = new Set([
|
|
253
|
+
"init", "set_phase", "list", "show", "search", "metrics", "export", "snapshot",
|
|
254
|
+
"add_node", "edge", "import_prd", "context", "rag_context", "next",
|
|
255
|
+
"sync_stack_docs", "reindex_knowledge", "analyze", "validate_ac",
|
|
256
|
+
]);
|
|
257
|
+
/**
|
|
258
|
+
* Check if a tool is allowed in the current phase.
|
|
259
|
+
* Returns warnings with severity based on strictness mode.
|
|
260
|
+
*/
|
|
261
|
+
export function checkToolGate(doc, phase, toolName, mode = "strict") {
|
|
262
|
+
if (ALWAYS_ALLOWED_TOOLS.has(toolName)) {
|
|
263
|
+
return [];
|
|
264
|
+
}
|
|
265
|
+
const restrictions = TOOL_PHASE_RESTRICTIONS[toolName];
|
|
266
|
+
if (!restrictions || !restrictions.has(phase)) {
|
|
267
|
+
return [];
|
|
268
|
+
}
|
|
269
|
+
const severity = mode === "strict" ? "error" : "warning";
|
|
270
|
+
return [{
|
|
271
|
+
code: "tool_phase_blocked",
|
|
272
|
+
message: `Tool "${toolName}" não é permitida na fase ${phase}. Avance para a fase apropriada primeiro.`,
|
|
273
|
+
severity,
|
|
274
|
+
}];
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Check if a status transition is allowed for a specific node in the current phase.
|
|
278
|
+
*/
|
|
279
|
+
export function checkStatusGate(doc, phase, nodeId, newStatus, mode = "strict") {
|
|
280
|
+
const warnings = [];
|
|
281
|
+
const severity = mode === "strict" ? "error" : "warning";
|
|
282
|
+
const node = doc.nodes.find((n) => n.id === nodeId);
|
|
283
|
+
if (newStatus === "done" && phase === "IMPLEMENT") {
|
|
284
|
+
// Check if node or parent has acceptance criteria
|
|
285
|
+
const hasAC = node?.acceptanceCriteria && node.acceptanceCriteria.length > 0;
|
|
286
|
+
const parentId = node?.parentId;
|
|
287
|
+
const parent = parentId ? doc.nodes.find((n) => n.id === parentId) : undefined;
|
|
288
|
+
const parentHasAC = parent?.acceptanceCriteria && parent.acceptanceCriteria.length > 0;
|
|
289
|
+
const globalAC = doc.nodes.some((n) => n.type === "acceptance_criteria");
|
|
290
|
+
if (!hasAC && !parentHasAC && !globalAC) {
|
|
291
|
+
warnings.push({
|
|
292
|
+
code: "done_without_acceptance_criteria",
|
|
293
|
+
message: `Node "${nodeId}" marcado como done sem acceptance criteria definidos.`,
|
|
294
|
+
severity,
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
// DoD pre-check — lightweight Definition of Done validation
|
|
298
|
+
// Only fire for nodes that have AC (the no-AC case is already handled above)
|
|
299
|
+
if (hasAC || parentHasAC || globalAC) {
|
|
300
|
+
const dodReport = checkDefinitionOfDone(doc, nodeId);
|
|
301
|
+
if (!dodReport.ready) {
|
|
302
|
+
const failedRequired = dodReport.checks
|
|
303
|
+
.filter((c) => c.severity === "required" && !c.passed)
|
|
304
|
+
.map((c) => c.name);
|
|
305
|
+
warnings.push({
|
|
306
|
+
code: "done_without_dod",
|
|
307
|
+
message: `Node "${nodeId}" não atende Definition of Done: ${failedRequired.join(", ")} (score: ${dodReport.score}, grade: ${dodReport.grade}).`,
|
|
308
|
+
severity: "warning", // Always warning — DoD is informational guidance
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
if (newStatus === "in_progress" && phase === "PLAN") {
|
|
314
|
+
const tasks = doc.nodes.filter((n) => TASK_TYPES.has(n.type));
|
|
315
|
+
const taskNode = tasks.find((n) => n.id === nodeId);
|
|
316
|
+
if (taskNode && !taskNode.sprint) {
|
|
317
|
+
warnings.push({
|
|
318
|
+
code: "in_progress_without_sprint",
|
|
319
|
+
message: `Task "${nodeId}" iniciada sem sprint atribuído.`,
|
|
320
|
+
severity,
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
if (newStatus === "done" && node && node.status !== "in_progress") {
|
|
325
|
+
warnings.push({
|
|
326
|
+
code: "done_without_in_progress",
|
|
327
|
+
message: `Node "${nodeId}" marcado como done sem ter passado por in_progress (status atual: ${node.status}).`,
|
|
328
|
+
severity: "warning", // Always warning, even in strict — this is a soft guideline
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
return { warnings };
|
|
332
|
+
}
|
|
145
333
|
/**
|
|
146
334
|
* Detect anti-pattern behaviors based on current phase, graph state, and tool being called.
|
|
147
|
-
*
|
|
335
|
+
* In advisory mode: returns warnings (never blocks execution).
|
|
336
|
+
* In strict mode: returns errors that block execution.
|
|
148
337
|
*/
|
|
149
|
-
export function detectWarnings(doc, phase, toolName) {
|
|
338
|
+
export function detectWarnings(doc, phase, toolName, mode = "strict") {
|
|
150
339
|
const warnings = [];
|
|
151
340
|
const guidance = GUIDANCE[phase];
|
|
341
|
+
// Check tool phase restrictions (strict → error, advisory → warning)
|
|
342
|
+
const gateWarnings = checkToolGate(doc, phase, toolName, mode);
|
|
343
|
+
warnings.push(...gateWarnings);
|
|
152
344
|
// Warn if tool is not recommended for current phase
|
|
153
345
|
if (!guidance.suggestedTools.includes(toolName)) {
|
|
154
346
|
warnings.push({
|
|
@@ -162,7 +354,7 @@ export function detectWarnings(doc, phase, toolName) {
|
|
|
162
354
|
warnings.push({
|
|
163
355
|
code: "premature_status_change",
|
|
164
356
|
message: "Fase ANALYZE — defina requisitos antes de implementar. Mudança de status prematura.",
|
|
165
|
-
severity: "warning",
|
|
357
|
+
severity: mode === "strict" ? "error" : "warning",
|
|
166
358
|
});
|
|
167
359
|
}
|
|
168
360
|
if (phase === "PLAN" && toolName === "update_status") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-phase.js","sourceRoot":"","sources":["../../../src/core/planner/lifecycle-phase.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lifecycle-phase.js","sourceRoot":"","sources":["../../../src/core/planner/lifecycle-phase.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase metadata utilities for knowledge indexers.
|
|
3
|
+
* Provides consistent phase tagging across all knowledge sources.
|
|
4
|
+
*/
|
|
5
|
+
import type { LifecyclePhase } from "../planner/lifecycle-phase.js";
|
|
6
|
+
/**
|
|
7
|
+
* Phase boost weights for RAG search.
|
|
8
|
+
* Maps: current phase → source phase → boost multiplier.
|
|
9
|
+
* Higher boost = more relevant for the current phase.
|
|
10
|
+
*/
|
|
11
|
+
export declare const PHASE_BOOST_WEIGHTS: Record<LifecyclePhase, Partial<Record<LifecyclePhase, number>>>;
|
|
12
|
+
/**
|
|
13
|
+
* Get the phase boost multiplier for a knowledge document in the current phase.
|
|
14
|
+
* Returns 1.0 (neutral) if no specific boost is defined.
|
|
15
|
+
*/
|
|
16
|
+
export declare function getPhaseBoost(currentPhase: LifecyclePhase, docPhase: string | undefined): number;
|
|
17
|
+
/**
|
|
18
|
+
* Apply phase boost to a BM25 score.
|
|
19
|
+
* BM25 scores are negative (closer to 0 = better match).
|
|
20
|
+
* Boosting means dividing by the weight (making score closer to 0).
|
|
21
|
+
*/
|
|
22
|
+
export declare function applyPhaseBoost(score: number, boost: number): number;
|
|
23
|
+
//# sourceMappingURL=phase-metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase-metadata.d.ts","sourceRoot":"","sources":["../../../src/core/rag/phase-metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAwC/F,CAAC;AAEF;;;GAGG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAIhG;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpE"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase metadata utilities for knowledge indexers.
|
|
3
|
+
* Provides consistent phase tagging across all knowledge sources.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Phase boost weights for RAG search.
|
|
7
|
+
* Maps: current phase → source phase → boost multiplier.
|
|
8
|
+
* Higher boost = more relevant for the current phase.
|
|
9
|
+
*/
|
|
10
|
+
export const PHASE_BOOST_WEIGHTS = {
|
|
11
|
+
ANALYZE: {
|
|
12
|
+
ANALYZE: 2.0,
|
|
13
|
+
LISTENING: 1.5,
|
|
14
|
+
},
|
|
15
|
+
DESIGN: {
|
|
16
|
+
DESIGN: 2.0,
|
|
17
|
+
ANALYZE: 1.5,
|
|
18
|
+
PLAN: 1.2,
|
|
19
|
+
},
|
|
20
|
+
PLAN: {
|
|
21
|
+
PLAN: 2.0,
|
|
22
|
+
DESIGN: 1.5,
|
|
23
|
+
ANALYZE: 1.3,
|
|
24
|
+
},
|
|
25
|
+
IMPLEMENT: {
|
|
26
|
+
IMPLEMENT: 2.0,
|
|
27
|
+
PLAN: 1.5,
|
|
28
|
+
DESIGN: 1.2,
|
|
29
|
+
},
|
|
30
|
+
VALIDATE: {
|
|
31
|
+
VALIDATE: 2.0,
|
|
32
|
+
IMPLEMENT: 2.0,
|
|
33
|
+
ANALYZE: 1.3,
|
|
34
|
+
},
|
|
35
|
+
REVIEW: {
|
|
36
|
+
REVIEW: 2.0,
|
|
37
|
+
IMPLEMENT: 1.5,
|
|
38
|
+
VALIDATE: 2.0,
|
|
39
|
+
},
|
|
40
|
+
HANDOFF: {
|
|
41
|
+
HANDOFF: 2.0,
|
|
42
|
+
REVIEW: 1.5,
|
|
43
|
+
VALIDATE: 1.3,
|
|
44
|
+
},
|
|
45
|
+
LISTENING: {
|
|
46
|
+
LISTENING: 2.0,
|
|
47
|
+
ANALYZE: 1.5,
|
|
48
|
+
VALIDATE: 1.3,
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Get the phase boost multiplier for a knowledge document in the current phase.
|
|
53
|
+
* Returns 1.0 (neutral) if no specific boost is defined.
|
|
54
|
+
*/
|
|
55
|
+
export function getPhaseBoost(currentPhase, docPhase) {
|
|
56
|
+
if (!docPhase)
|
|
57
|
+
return 1.0;
|
|
58
|
+
const weights = PHASE_BOOST_WEIGHTS[currentPhase];
|
|
59
|
+
return weights[docPhase] ?? 1.0;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Apply phase boost to a BM25 score.
|
|
63
|
+
* BM25 scores are negative (closer to 0 = better match).
|
|
64
|
+
* Boosting means dividing by the weight (making score closer to 0).
|
|
65
|
+
*/
|
|
66
|
+
export function applyPhaseBoost(score, boost) {
|
|
67
|
+
if (boost <= 0)
|
|
68
|
+
return score;
|
|
69
|
+
// BM25 scores are negative — dividing by boost makes them closer to 0 (better)
|
|
70
|
+
return score / boost;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=phase-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase-metadata.js","sourceRoot":"","sources":["../../../src/core/rag/phase-metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAoE;IAClG,OAAO,EAAE;QACP,OAAO,EAAE,GAAG;QACZ,SAAS,EAAE,GAAG;KACf;IACD,MAAM,EAAE;QACN,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,GAAG;KACV;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,GAAG;KACb;IACD,SAAS,EAAE;QACT,SAAS,EAAE,GAAG;QACd,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,GAAG;KACZ;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,GAAG;QACb,SAAS,EAAE,GAAG;QACd,OAAO,EAAE,GAAG;KACb;IACD,MAAM,EAAE;QACN,MAAM,EAAE,GAAG;QACX,SAAS,EAAE,GAAG;QACd,QAAQ,EAAE,GAAG;KACd;IACD,OAAO,EAAE;QACP,OAAO,EAAE,GAAG;QACZ,MAAM,EAAE,GAAG;QACX,QAAQ,EAAE,GAAG;KACd;IACD,SAAS,EAAE;QACT,SAAS,EAAE,GAAG;QACd,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,GAAG;KACd;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,YAA4B,EAAE,QAA4B;IACtF,IAAI,CAAC,QAAQ;QAAE,OAAO,GAAG,CAAC;IAC1B,MAAM,OAAO,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAClD,OAAO,OAAO,CAAC,QAA0B,CAAC,IAAI,GAAG,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,KAAa;IAC1D,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7B,+EAA+E;IAC/E,OAAO,KAAK,GAAG,KAAK,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase Summary Generator — creates a knowledge document summarizing
|
|
3
|
+
* what was accomplished during a lifecycle phase when transitioning out.
|
|
4
|
+
*/
|
|
5
|
+
import type { GraphDocument } from "../graph/graph-types.js";
|
|
6
|
+
import type { LifecyclePhase } from "../planner/lifecycle-phase.js";
|
|
7
|
+
import { KnowledgeStore } from "../store/knowledge-store.js";
|
|
8
|
+
export interface PhaseSummaryResult {
|
|
9
|
+
indexed: boolean;
|
|
10
|
+
summaryText: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Generate and index a phase summary document into the knowledge store.
|
|
14
|
+
* Captures key metrics and decisions from the completed phase.
|
|
15
|
+
*/
|
|
16
|
+
export declare function generateAndIndexPhaseSummary(knowledgeStore: KnowledgeStore, doc: GraphDocument, fromPhase: LifecyclePhase, toPhase: LifecyclePhase): PhaseSummaryResult;
|
|
17
|
+
//# sourceMappingURL=phase-summary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase-summary.d.ts","sourceRoot":"","sources":["../../../src/core/rag/phase-summary.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAKD;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,aAAa,EAClB,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,cAAc,GACtB,kBAAkB,CAwBpB"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase Summary Generator — creates a knowledge document summarizing
|
|
3
|
+
* what was accomplished during a lifecycle phase when transitioning out.
|
|
4
|
+
*/
|
|
5
|
+
import { logger } from "../utils/logger.js";
|
|
6
|
+
const TASK_TYPES = new Set(["task", "subtask"]);
|
|
7
|
+
const DESIGN_TYPES = new Set(["decision", "constraint", "risk", "acceptance_criteria"]);
|
|
8
|
+
/**
|
|
9
|
+
* Generate and index a phase summary document into the knowledge store.
|
|
10
|
+
* Captures key metrics and decisions from the completed phase.
|
|
11
|
+
*/
|
|
12
|
+
export function generateAndIndexPhaseSummary(knowledgeStore, doc, fromPhase, toPhase) {
|
|
13
|
+
const summaryText = buildPhaseSummaryText(doc, fromPhase, toPhase);
|
|
14
|
+
const sourceId = `phase_summary:${fromPhase}:${new Date().toISOString()}`;
|
|
15
|
+
try {
|
|
16
|
+
knowledgeStore.insert({
|
|
17
|
+
sourceType: "phase_summary",
|
|
18
|
+
sourceId,
|
|
19
|
+
title: `Phase ${fromPhase} Summary → ${toPhase}`,
|
|
20
|
+
content: summaryText,
|
|
21
|
+
metadata: {
|
|
22
|
+
phase: fromPhase,
|
|
23
|
+
transitionTo: toPhase,
|
|
24
|
+
transitionedAt: new Date().toISOString(),
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
logger.info("Phase summary indexed", { fromPhase, toPhase });
|
|
28
|
+
return { indexed: true, summaryText };
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
logger.warn("Phase summary indexing failed", { error: String(err) });
|
|
32
|
+
return { indexed: false, summaryText };
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Build a human-readable summary of what happened during a phase.
|
|
37
|
+
*/
|
|
38
|
+
function buildPhaseSummaryText(doc, fromPhase, toPhase) {
|
|
39
|
+
const { nodes, edges } = doc;
|
|
40
|
+
const tasks = nodes.filter((n) => TASK_TYPES.has(n.type));
|
|
41
|
+
const doneTasks = tasks.filter((n) => n.status === "done");
|
|
42
|
+
const inProgressTasks = tasks.filter((n) => n.status === "in_progress");
|
|
43
|
+
const designNodes = nodes.filter((n) => DESIGN_TYPES.has(n.type));
|
|
44
|
+
const sections = [];
|
|
45
|
+
sections.push(`Phase ${fromPhase} completed. Transitioning to ${toPhase}.`);
|
|
46
|
+
sections.push(`Total nodes: ${nodes.length}. Edges: ${edges.length}.`);
|
|
47
|
+
if (tasks.length > 0) {
|
|
48
|
+
sections.push(`Tasks: ${tasks.length} total, ${doneTasks.length} done, ${inProgressTasks.length} in progress, ${tasks.length - doneTasks.length - inProgressTasks.length} remaining.`);
|
|
49
|
+
}
|
|
50
|
+
// Phase-specific summaries
|
|
51
|
+
switch (fromPhase) {
|
|
52
|
+
case "ANALYZE": {
|
|
53
|
+
const requirements = nodes.filter((n) => n.type === "requirement");
|
|
54
|
+
const epics = nodes.filter((n) => n.type === "epic");
|
|
55
|
+
sections.push(`Requirements defined: ${requirements.length}. Epics: ${epics.length}.`);
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
case "DESIGN": {
|
|
59
|
+
const decisions = designNodes.filter((n) => n.type === "decision");
|
|
60
|
+
const constraints = designNodes.filter((n) => n.type === "constraint");
|
|
61
|
+
const risks = designNodes.filter((n) => n.type === "risk");
|
|
62
|
+
sections.push(`Decisions: ${decisions.length}. Constraints: ${constraints.length}. Risks: ${risks.length}.`);
|
|
63
|
+
if (decisions.length > 0) {
|
|
64
|
+
const decisionTitles = decisions.map((d) => d.title).slice(0, 5);
|
|
65
|
+
sections.push(`Key decisions: ${decisionTitles.join("; ")}.`);
|
|
66
|
+
}
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
case "PLAN": {
|
|
70
|
+
const sprintTasks = tasks.filter((n) => n.sprint != null);
|
|
71
|
+
const sprints = new Set(sprintTasks.map((n) => n.sprint));
|
|
72
|
+
sections.push(`Sprint-assigned tasks: ${sprintTasks.length} across ${sprints.size} sprint(s).`);
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
case "IMPLEMENT": {
|
|
76
|
+
sections.push(`Tasks completed: ${doneTasks.length}/${tasks.length}.`);
|
|
77
|
+
const acNodes = nodes.filter((n) => n.type === "acceptance_criteria");
|
|
78
|
+
if (acNodes.length > 0) {
|
|
79
|
+
sections.push(`Acceptance criteria nodes: ${acNodes.length}.`);
|
|
80
|
+
}
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
case "VALIDATE": {
|
|
84
|
+
const tasksWithAc = tasks.filter((n) => n.acceptanceCriteria && n.acceptanceCriteria.length > 0);
|
|
85
|
+
sections.push(`Tasks with acceptance criteria: ${tasksWithAc.length}/${tasks.length}.`);
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
case "REVIEW": {
|
|
89
|
+
sections.push(`All tasks done: ${doneTasks.length === tasks.length ? "yes" : "no"}.`);
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
case "HANDOFF": {
|
|
93
|
+
sections.push(`Handoff completed. ${doneTasks.length} tasks delivered.`);
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
case "LISTENING": {
|
|
97
|
+
const feedbackNodes = nodes.filter((n) => n.type === "requirement" || n.type === "risk");
|
|
98
|
+
sections.push(`Feedback items collected: ${feedbackNodes.length}.`);
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return sections.join("\n");
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=phase-summary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase-summary.js","sourceRoot":"","sources":["../../../src/core/rag/phase-summary.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PRD Indexer — indexes PRD text content into the knowledge store
|
|
3
|
+
* so that original requirements can be queried in later lifecycle phases.
|
|
4
|
+
*/
|
|
5
|
+
import { KnowledgeStore } from "../store/knowledge-store.js";
|
|
6
|
+
import type { LifecyclePhase } from "../planner/lifecycle-phase.js";
|
|
7
|
+
export interface PrdIndexResult {
|
|
8
|
+
documentsIndexed: number;
|
|
9
|
+
sourceFile: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Index PRD text content into the knowledge store.
|
|
13
|
+
* Chunks the content and stores with source_type='prd'.
|
|
14
|
+
*/
|
|
15
|
+
export declare function indexPrdContent(knowledgeStore: KnowledgeStore, content: string, sourceFile: string, phase?: LifecyclePhase): PrdIndexResult;
|
|
16
|
+
//# sourceMappingURL=prd-indexer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prd-indexer.d.ts","sourceRoot":"","sources":["../../../src/core/rag/prd-indexer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,cAAc,GACrB,cAAc,CAiChB"}
|