Add report generation mode metadata
This commit is contained in:
@@ -16,6 +16,7 @@ Each report definition declares:
|
|||||||
|
|
||||||
- report ID and display name
|
- report ID and display name
|
||||||
- Scriptorium prompt ID
|
- Scriptorium prompt ID
|
||||||
|
- generation mode
|
||||||
- valid-period resolver
|
- valid-period resolver
|
||||||
- comparison strategy
|
- comparison strategy
|
||||||
- managed artifact group
|
- managed artifact group
|
||||||
@@ -25,6 +26,10 @@ Each report definition declares:
|
|||||||
- morning or evening batch membership
|
- morning or evening batch membership
|
||||||
- default ordered module composition
|
- default ordered module composition
|
||||||
|
|
||||||
|
Current report definitions use the `scriptorium_markdown` generation mode.
|
||||||
|
Template and structured-text schema identifiers are empty for these Markdown
|
||||||
|
reports.
|
||||||
|
|
||||||
## Reports
|
## Reports
|
||||||
|
|
||||||
| Report | ID | Prompt | Artifact group | Batch copy | Prior compatibility |
|
| Report | ID | Prompt | Artifact group | Batch copy | Prior compatibility |
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ func dailyTodayDefinition() Definition {
|
|||||||
ID: DailyToday,
|
ID: DailyToday,
|
||||||
Name: "Daily Report",
|
Name: "Daily Report",
|
||||||
PromptID: "weather.daily_report",
|
PromptID: "weather.daily_report",
|
||||||
|
GenerationMode: GenerationModeScriptoriumMarkdown,
|
||||||
ComparisonStrategy: CompareSameValidDate,
|
ComparisonStrategy: CompareSameValidDate,
|
||||||
ArtifactGroup: "daily",
|
ArtifactGroup: "daily",
|
||||||
BatchOutputName: "daily.md",
|
BatchOutputName: "daily.md",
|
||||||
@@ -26,6 +27,7 @@ func dailyTomorrowDefinition() Definition {
|
|||||||
ID: DailyTomorrow,
|
ID: DailyTomorrow,
|
||||||
Name: "Tomorrow Planning Brief",
|
Name: "Tomorrow Planning Brief",
|
||||||
PromptID: "weather.daily_report",
|
PromptID: "weather.daily_report",
|
||||||
|
GenerationMode: GenerationModeScriptoriumMarkdown,
|
||||||
ComparisonStrategy: CompareSameValidDate,
|
ComparisonStrategy: CompareSameValidDate,
|
||||||
ArtifactGroup: "daily",
|
ArtifactGroup: "daily",
|
||||||
BatchOutputName: "tomorrow.md",
|
BatchOutputName: "tomorrow.md",
|
||||||
|
|||||||
@@ -29,6 +29,13 @@ const (
|
|||||||
CompareRollingWindow ComparisonStrategy = "rolling_window"
|
CompareRollingWindow ComparisonStrategy = "rolling_window"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type GenerationMode string
|
||||||
|
|
||||||
|
const (
|
||||||
|
GenerationModeScriptoriumMarkdown GenerationMode = "scriptorium_markdown"
|
||||||
|
GenerationModeGeneratedTextTemplate GenerationMode = "generated_text_template"
|
||||||
|
)
|
||||||
|
|
||||||
type Batch string
|
type Batch string
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -40,6 +47,9 @@ type Definition struct {
|
|||||||
ID ID
|
ID ID
|
||||||
Name string
|
Name string
|
||||||
PromptID string
|
PromptID string
|
||||||
|
GenerationMode GenerationMode
|
||||||
|
TemplateID string
|
||||||
|
GeneratedTextSchemaID string
|
||||||
ComparisonStrategy ComparisonStrategy
|
ComparisonStrategy ComparisonStrategy
|
||||||
ArtifactGroup string
|
ArtifactGroup string
|
||||||
BatchOutputName string
|
BatchOutputName string
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ func hourlyDefinition() Definition {
|
|||||||
ID: Hourly,
|
ID: Hourly,
|
||||||
Name: "Hourly Report",
|
Name: "Hourly Report",
|
||||||
PromptID: "weather.hourly_report",
|
PromptID: "weather.hourly_report",
|
||||||
|
GenerationMode: GenerationModeScriptoriumMarkdown,
|
||||||
ComparisonStrategy: CompareRollingWindow,
|
ComparisonStrategy: CompareRollingWindow,
|
||||||
ArtifactGroup: "hourly",
|
ArtifactGroup: "hourly",
|
||||||
BatchOutputName: "hourly.md",
|
BatchOutputName: "hourly.md",
|
||||||
|
|||||||
@@ -245,12 +245,32 @@ func TestRegistryDefinitionsHavePromptIDsAndComparisonStrategies(t *testing.T) {
|
|||||||
if definition.PromptID == "" {
|
if definition.PromptID == "" {
|
||||||
t.Fatalf("%s PromptID is empty", definition.ID)
|
t.Fatalf("%s PromptID is empty", definition.ID)
|
||||||
}
|
}
|
||||||
|
if definition.Generated && definition.GenerationMode == "" {
|
||||||
|
t.Fatalf("%s GenerationMode is empty", definition.ID)
|
||||||
|
}
|
||||||
if definition.ComparisonStrategy == "" {
|
if definition.ComparisonStrategy == "" {
|
||||||
t.Fatalf("%s ComparisonStrategy is empty", definition.ID)
|
t.Fatalf("%s ComparisonStrategy is empty", definition.ID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestRegistryDefinitionsDeclareGenerationMetadata(t *testing.T) {
|
||||||
|
for _, definition := range DefaultRegistry().All() {
|
||||||
|
if !definition.Generated {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if definition.GenerationMode != GenerationModeScriptoriumMarkdown {
|
||||||
|
t.Fatalf("%s GenerationMode = %q, want %q", definition.ID, definition.GenerationMode, GenerationModeScriptoriumMarkdown)
|
||||||
|
}
|
||||||
|
if definition.TemplateID != "" {
|
||||||
|
t.Fatalf("%s TemplateID = %q, want empty for Markdown report", definition.ID, definition.TemplateID)
|
||||||
|
}
|
||||||
|
if definition.GeneratedTextSchemaID != "" {
|
||||||
|
t.Fatalf("%s GeneratedTextSchemaID = %q, want empty for Markdown report", definition.ID, definition.GeneratedTextSchemaID)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestRegistryDefinitionsDeclarePathAndCompatibilityPolicy(t *testing.T) {
|
func TestRegistryDefinitionsDeclarePathAndCompatibilityPolicy(t *testing.T) {
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
id ID
|
id ID
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ func stormDefinition() Definition {
|
|||||||
ID: Storm,
|
ID: Storm,
|
||||||
Name: "Storm Report",
|
Name: "Storm Report",
|
||||||
PromptID: "weather.storm_report",
|
PromptID: "weather.storm_report",
|
||||||
|
GenerationMode: GenerationModeScriptoriumMarkdown,
|
||||||
ComparisonStrategy: CompareExplicitWindow,
|
ComparisonStrategy: CompareExplicitWindow,
|
||||||
ArtifactGroup: "storm",
|
ArtifactGroup: "storm",
|
||||||
BatchOutputName: "storm.md",
|
BatchOutputName: "storm.md",
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ func threeDayDefinition() Definition {
|
|||||||
ID: ThreeDay,
|
ID: ThreeDay,
|
||||||
Name: "3-Day Outlook",
|
Name: "3-Day Outlook",
|
||||||
PromptID: "weather.three_day_outlook",
|
PromptID: "weather.three_day_outlook",
|
||||||
|
GenerationMode: GenerationModeScriptoriumMarkdown,
|
||||||
ComparisonStrategy: CompareSameValidDate,
|
ComparisonStrategy: CompareSameValidDate,
|
||||||
ArtifactGroup: "three-day",
|
ArtifactGroup: "three-day",
|
||||||
BatchOutputName: "three-day.md",
|
BatchOutputName: "three-day.md",
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ func weekendDefinition() Definition {
|
|||||||
ID: Weekend,
|
ID: Weekend,
|
||||||
Name: "Weekend Outlook",
|
Name: "Weekend Outlook",
|
||||||
PromptID: "weather.weekend_outlook",
|
PromptID: "weather.weekend_outlook",
|
||||||
|
GenerationMode: GenerationModeScriptoriumMarkdown,
|
||||||
ComparisonStrategy: CompareWeekendWindow,
|
ComparisonStrategy: CompareWeekendWindow,
|
||||||
ArtifactGroup: "weekend",
|
ArtifactGroup: "weekend",
|
||||||
BatchOutputName: "weekend.md",
|
BatchOutputName: "weekend.md",
|
||||||
|
|||||||
Reference in New Issue
Block a user