fix: resolve Gemini-identified pipeline data flow inconsistencies

Fix 3 issues found by Gemini full-chain analysis:

1. (High) cross_cutting_specs path format mismatch: feature-index.json
   uses relative paths ("role/file.md") but context-package uses full
   paths (".workflow/.../role/file.md"). Changed action-planning-agent
   to use endsWith() matching and read from context-package objects
   instead of raw feature-index strings.

2. (Medium) Add explicit feature_index_path field to context-package
   schema in context-search-agent, so task-generate-agent can read it
   directly instead of hardcoding paths. Updated both single-module
   and multi-module prompt templates with fallback logic.

3. (Medium) Expand synthesis_output in context-search-agent to include
   feature_driven sub-object pointing to feature-index.json and
   feature-specs/ directory alongside legacy synthesis-specification.md.
This commit is contained in:
catlog22
2026-02-12 22:06:00 +08:00
parent 99ee4e7d36
commit a169f0e5b8
3 changed files with 35 additions and 9 deletions

View File

@@ -280,7 +280,10 @@ Session ID: {session-id}
MCP Capabilities: {exa_code, exa_web, code_index}
## FEATURE SPECIFICATIONS (conditional)
If .workflow/active/{session-id}/.brainstorming/feature-specs/ exists:
If context-package has brainstorm_artifacts.feature_index_path:
Feature Index: ${contextPackage.brainstorm_artifacts.feature_index_path}
Feature Spec Dir: ${contextPackage.brainstorm_artifacts.feature_index_path.replace('/feature-index.json', '/')}
Else if .workflow/active/{session-id}/.brainstorming/feature-specs/ exists:
Feature Index: .workflow/active/{session-id}/.brainstorming/feature-specs/feature-index.json
Feature Spec Dir: .workflow/active/{session-id}/.brainstorming/feature-specs/
@@ -475,7 +478,10 @@ Session ID: {session-id}
MCP Capabilities: {exa_code, exa_web, code_index}
## FEATURE SPECIFICATIONS (conditional)
If .workflow/active/{session-id}/.brainstorming/feature-specs/ exists:
If context-package has brainstorm_artifacts.feature_index_path:
Feature Index: ${contextPackage.brainstorm_artifacts.feature_index_path}
Feature Spec Dir: ${contextPackage.brainstorm_artifacts.feature_index_path.replace('/feature-index.json', '/')}
Else if .workflow/active/{session-id}/.brainstorming/feature-specs/ exists:
Feature Index: .workflow/active/{session-id}/.brainstorming/feature-specs/feature-index.json
Feature Spec Dir: .workflow/active/{session-id}/.brainstorming/feature-specs/