4.1 KiB
Agent Handoff - 2026-03-08 - Cross-Project Target Grounding (GR-027)
Scope
This handoff captures work completed on the open gap GR-027 (cross-project task targeting mismatch) in Whetstone taskitem generation/validation.
Problem Addressed
Cross-repo orchestration specs were producing Whetstone-internal targetFiles (editor/src/..., tools/mcp/...) even when the workspace was set to /home/bill/Documents and the spec explicitly targeted external repos.
What Was Implemented
1) Generator/Queue cross-project mismatch detection
File: editor/src/mcp/RegisterArchitectIntakeTools.h
- Added cross-project repo signal detection from normalized requirements.
- Added cross-project fallback target grounding when strict execution contract is enabled and
targetFilesare otherwise missing. - Added queue blocker
cross_project_target_mismatchwhen cross-project intent is detected but generated targets are internal-only. - Added blocker metadata mapping for
cross_project_target_mismatchto gap classcross_project_targeting_gapand remediation hints.
2) Validator mismatch classification
File: editor/src/mcp/RegisterValidationTools.h
- Extended
whetstone_validate_taskitemschema with optionalexpected_project_roots. - Added cross-project mismatch detection in validation results.
- Added gap class mapping
cross_project_targeting_gapand recommended tool routing for that class.
3) Semantic artifact-file injection into pipeline
File: tools/mcp/run_sprint_taskitem_pipeline.sh
- Extended semantic requirement injection to derive
requiremententries from contractrequired_artifactsbacktick paths. - Injected normalized requirements like
explicit target file: cad_orchestrator/models.py.
4) Path extraction/normalization hardening
File: editor/src/mcp/RegisterArchitectIntakeTools.h
- Added normalization helpers for path-like tokens (including absolute
/home/bill/Documents/...inputs). - Added extraction of inline path tokens beyond code-fenced/backticked fragments.
5) Per-task target scoping for requirement-slice tasks
File: editor/src/mcp/RegisterArchitectIntakeTools.h
- Added task-level scoping so tasks titled
Requirement Slice semantic-artifact-file-*receive only their corresponding single target file. - Non-slice tasks currently keep the broader target set.
6) Tests updated
Files:
-
editor/tests/step615_test.cpp -
editor/tests/step682_test.cpp -
Added focused checks for cross-project target grounding and validation mismatch classification.
Key Validation Runs
A) Cross-project roadmap run
- Run:
logs/taskitem_runs/constcad_ecosystem_roadmap_20260308_093527 - Result: no internal default fallback;
targetFilesgrounded to cross-project targets.
B) SPRINT-005 run (pre file-level injection)
- Run:
logs/taskitem_runs/sprint_005_execution_spec_whetstone_20260308_093527 - Result: repo-level targets (README-level grounding).
C) SPRINT-005 run (after file-level semantic injection)
- Run:
logs/taskitem_runs/sprint_005_execution_spec_whetstone_20260308_101705 - Result: concrete cross-project files propagated into
targetFiles.
D) SPRINT-005 run (after per-task scoping)
- Run:
logs/taskitem_runs/sprint_005_execution_spec_whetstone_20260308_103102 - Result:
Requirement Slice semantic-artifact-file-*tasks have single-filetargetFiles.- Composite/review tasks still carry broader file lists.
Current Status
GR-027core mismatch is addressed in generation, queue gating, and validation classification.- Cross-project explicit file grounding is now present for hard specs that include artifact paths.
- Requirement-slice tasks are now narrowly scoped.
Suggested Next Steps
- Scope non-slice tasks (
Intake Foundation,Execution Readiness,Architect Review) into smaller deterministic file groups. - Add/refresh dedicated regression tests for:
- queue blocker
cross_project_target_mismatch - per-task single-file scoping behavior for semantic artifact slices.
- queue blocker
- Update
docs/generator_readiness_gap_registry_2026-02-26.mdto setGR-027fromopentopartialordoneafter final acceptance criteria decision.