diff --git a/plans/tomtervel.yaml b/plans/tomtervel.yaml index c3c4d48..e28aad5 100644 --- a/plans/tomtervel.yaml +++ b/plans/tomtervel.yaml @@ -51,11 +51,23 @@ does: nabohjelpsgruppa deg med en nabo som kan. Du sier selv fra når det er ordnet. +doors: + - id: medlem + who: en husstand i Tomter som vil bli medlem, betale kontingent, eller melde flytting, ny e-post eller utmelding + - id: melde-fra + who: noen som har sett noe farlig i trafikken, eller noe ødelagt på lekeplassen eller stien + - id: bidra + who: noen som vil stille opp på 17. mai, dugnad eller et arrangement, eller sitte i en komité + - id: naboer + who: en nabo som trenger en hånd med snømåking, handling eller skyss, kan gi en, eller har noe å låne ut + + needs: - id: bli-medlem who: en husstand i Tomter wants: å bli medlem og få betalt kontingenten lands_in: husstander + door: medlem handled_by: kasserer stages: [open, betalt, utmeldt] done_when: [betalt, utmeldt] @@ -74,6 +86,7 @@ needs: who: et medlem som har flyttet, byttet e-post eller vil melde seg ut wants: at velet har riktige opplysninger om dem lands_in: medlemsendringer + door: medlem handled_by: kasserer stages: [open, oppdatert] done_when: [oppdatert] @@ -88,6 +101,7 @@ needs: who: en som har sett et farlig sted i trafikken wants: at velet tar det opp med kommunen eller den som eier veien lands_in: trafikkmeldinger + door: melde-fra handled_by: trafikk stages: [open, tatt_opp, ordnet, avvist] done_when: [ordnet, avvist] @@ -104,6 +118,7 @@ needs: who: en som ser at noe på lekeplassen eller stien er ødelagt wants: at det blir fikset før noen skader seg lands_in: anleggsfeil + door: melde-fra handled_by: lekeplasser stages: [open, tatt_tak_i, utbedret] done_when: [utbedret] @@ -134,6 +149,7 @@ needs: who: en som vil hjelpe til på et arrangement eller en dugnad wants: å bli satt opp på noe som passer dem lands_in: frivillige + door: bidra handled_by: arrangementer stages: [open, kontaktet, satt_opp, takket_nei] done_when: [satt_opp, takket_nei] @@ -148,6 +164,7 @@ needs: who: en som vil sitte i en komité wants: en plass i den komiteen som driver med det de bryr seg om lands_in: komitesoknader + door: bidra handled_by: styret stages: [open, plassert, avslatt] done_when: [plassert, avslatt] @@ -165,6 +182,7 @@ needs: who: en beboer som ikke får til noe selv for tiden, som snømåking, handling eller en skyss wants: at en nabo stiller opp lands_in: hjelpebehov + door: naboer handled_by: nabohjelp stages: [open, formidlet, ordnet, ikke_lost] done_when: [ordnet, ikke_lost] @@ -183,6 +201,7 @@ needs: who: en nabo som kan stille opp når noen trenger det wants: å bli spurt når det passer lands_in: hjelpere + door: naboer handled_by: nabohjelp stages: [open, registrert, trukket] done_when: [registrert, trukket] @@ -200,6 +219,7 @@ needs: who: en nabo som har noe å låne ut, eller trenger å låne noe wants: et oppslag som naboene ser lands_in: oppslag + door: naboer handled_by: styret stages: [open, lagt_ut, tatt_ned] done_when: [lagt_ut, tatt_ned] diff --git a/src/main.rs b/src/main.rs index 885b611..b023e6d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -487,7 +487,12 @@ pub(crate) fn answer_blind(cmd: &str, tasks: &str, repo: Option<&Path>) -> anyho format!("{}. {body}", i + 1) }) .collect(); - let head = page.as_ref().map(card::page_head).unwrap_or_default(); + let mut head = page.as_ref().map(card::page_head).unwrap_or_default(); + // What the page says before it offers anything (the opener, the + // look around): read, not picked. + if let Some(context) = task["state"]["page"].as_str().filter(|c| !c.trim().is_empty()) { + head.push_str(&format!("The page first says:\n{context}\n\n")); + } let prompt = format!( "You are this person: {body}\n\n{instructions}\n{head}The page offers these options:\n\n{}\n\nWhich one do you pick? Judge only from your own situation and the wording in front of you. Give your honest confidence between 0 and 1; if two options fit you about equally, confidence is low.\nReply as JSON: {{\"choice\": , \"confidence\": 0.00}}", listed.join("\n\n") diff --git a/src/rate.rs b/src/rate.rs index 6ccdc2a..0dc77c4 100644 --- a/src/rate.rs +++ b/src/rate.rs @@ -72,6 +72,11 @@ fn page_text(step: &Value, page: Option<&Value>, followup: Option<&Value>, gutte (false, Some(p)) => card::page_head(p), _ => format!("{}\n", step["question"].as_str().unwrap_or_default()), }; + // The cards that lead nowhere (the opener, the look around) are + // read before the options; the gutted twin loses them too. + if let Some(context) = step["context"].as_str().filter(|c| !c.trim().is_empty() && !gutted) { + text.push_str(&format!("\n{context}\n")); + } for (i, option) in step["options"].as_array().into_iter().flatten().enumerate() { if gutted { text.push_str(&format!("\n- Option {}\n", i + 1));