Add the archive_title skill and title Supply runs on generation
archive_title v1 writes a Supply run's post title for the Supply archive from the week's dinner names in day order. Validation requires 1-48 characters on one line, no emoji and no surrounding quotation marks; a reply breaking a rule gets the harness's one repair turn. shopping.Generate and GeneratePushed run it, outside the generation's transaction, whenever the stored list is still untitled, and store shopping_lists.title only while the list is untitled and not frozen. A title failure never fails the generation: the list stays untitled, the failure is logged and recorded in ai_runs, and the week's next generation tries again. A titled list keeps its title on remakes. Maestro task fa4b94c9-6623-41ab-8d2a-0ca7d1e6401a. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+13
-1
@@ -133,7 +133,7 @@ func run(cfg config.Config, logger *slog.Logger) error {
|
||||
return err
|
||||
}
|
||||
|
||||
shopSvc, err := shopping.NewService(db)
|
||||
shopSvc, err := shopping.NewService(db, archiveTitler(ai, guard), logger)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -325,6 +325,18 @@ func weekDrafter(ai *aisettings.Service, guard *harness.Guard) plan.Drafter {
|
||||
}
|
||||
}
|
||||
|
||||
// archiveTitler runs archive_title with the AI settings current at each
|
||||
// run, sharing guard.
|
||||
func archiveTitler(ai *aisettings.Service, guard *harness.Guard) shopping.Titler {
|
||||
return func(ctx context.Context, scope string, in skills.ArchiveTitleRequest) (skills.ArchiveTitle, error) {
|
||||
cfg, err := ai.HarnessConfig(ctx, guard)
|
||||
if err != nil {
|
||||
return skills.ArchiveTitle{}, err
|
||||
}
|
||||
return skills.TitleArchive(ctx, cfg, scope, in)
|
||||
}
|
||||
}
|
||||
|
||||
// logListening logs the startup line. Only the public URL's origin is logged
|
||||
// so no credential-bearing URL component can reach the log.
|
||||
func logListening(logger *slog.Logger, cfg config.Config) {
|
||||
|
||||
Reference in New Issue
Block a user