Carry optional prompt labels through results

This commit is contained in:
2026-10-17 05:54:32 +00:00
parent 8cbb7c0daf
commit ec3245c97e
40 changed files with 363 additions and 121 deletions

View File

@@ -116,7 +116,8 @@ type RequirementIssue struct {
// prompt context. Input and variable entries are sorted by exact name. Issues
// are deduplicated by code and associated names, then sorted by that tuple.
// Their descriptions and entry explanations are safe summaries, not
// machine-readable details.
// machine-readable details. PromptVersion is caller-owned: nil means no label
// was declared; a non-nil empty string is explicit.
//
// Complete describes the supported analysis's discovery coverage, not whether
// requirements are supplied, templates will render, artifacts or schemas are
@@ -128,8 +129,9 @@ type RequirementIssue struct {
type RequirementInspection struct {
// PromptID is the selected exact prompt ID.
PromptID string
// PromptVersion is the selected definition's descriptive version label.
PromptVersion string
// PromptVersion is the selected definition's descriptive version label. Nil
// means no label was declared; a non-nil empty string is an explicit label.
PromptVersion *string
// ProfileID is the selected profile identity; it does not indicate
// execution readiness.
ProfileID string
@@ -200,7 +202,7 @@ func fromDomainRequirementInspection(inspection *domain.RequirementInspection) *
return nil
}
result := &RequirementInspection{
PromptID: inspection.PromptID, PromptVersion: inspection.PromptVersion,
PromptID: inspection.PromptID, PromptVersion: copyRequirementString(inspection.PromptVersion),
ProfileID: inspection.ProfileID, Complete: inspection.Complete,
Inputs: make([]InputRequirement, len(inspection.Inputs)),
Variables: make([]VariableRequirement, len(inspection.Variables)),