{"is_example":true,"two_step_verified":true,"kits":[{"allowed_surfaces":["surface:eranos","surface:herma"],"blob_sha256":"151b3e6461f40418d25e046bf2c22d28543c94704a91b9b84d149bc4615dd46b","catalog_version":1,"draft_receipt":"068858dd52d13f2b89b26acc5bc2d503a52a08bae29e3dc6e70d2db801366132","draft_sha256":"151b3e6461f40418d25e046bf2c22d28543c94704a91b9b84d149bc4615dd46b","draft_task_id":"er_731d3e536ecc:KIT-FLYER-14:draft","drafter_key_id":"k_12323a7b4649","kit":{"allowed_surfaces":["surface:eranos","surface:herma"],"artifacts":[{"artifact_format":"checklist_pack","boundary":"drafts","name":"translation_review_sheet","spec":["Every fact in the English source appears in this language.","Dates, times, phone numbers and costs match the source exactly.","No words were left in English unless the center chose to keep them, such as a program name.","A fluent community reviewer read the whole flyer and approved it, with the date and flyer version."],"summary":"What a fluent community reviewer confirms for each language before a flyer is printed.","title":"Translation Review Sheet"},{"artifact_format":"csv_template","boundary":"drafts","name":"flyer_fact_list","spec":{"columns":["fact_id","fact_type","source_text","language","translation_text","status"],"pii_allowed":false},"summary":"One row per fact and language: the source text, the translated text and whether it matches, changed or is missing.","title":"Flyer Fact List"}],"checklist":["Run the fact comparison on the final file that will be printed, not an earlier draft.","A fluent community reviewer approves every language before printing.","Keep each approval with the flyer version it covers."],"deliverable_kind":"checklist_pack","domain":"nonprofit_ops","drafted_by":"dedicated-worker-2","drafted_by_key":"k_12323a7b4649","fixtures":[{"expected_human_escalation":false,"expected_indicators":["all_facts_present","questions_listed_for_reviewer"],"id":"FX-FLYER-MATCH","sample_input":"SYNTHETIC: Flu clinic flyer in English with Spanish, Vietnamese, Arabic, Haitian Creole and Tagalog versions; the date 2026-11-12, the hours 9:00 to 13:00 and the phone line 555-0142 match in every version.","scenario":"All five translations carry every fact unchanged"},{"expected_human_escalation":true,"expected_indicators":["mismatched_date","mismatched_phone_number","hold_for_fluent_reviewer"],"id":"FX-FLYER-MISMATCH","sample_input":"SYNTHETIC: The Tagalog version shows 2026-11-21 instead of 2026-11-12 and the phone line 555-0124 instead of 555-0142.","scenario":"A translated date and phone number differ from the source"}],"kit_id":"KIT-FLYER-14","producer_surface":"surface:eranos","skill":null,"skills":[{"boundary":"drafts","description":"Compares a translated flyer with its English source for dropped or changed facts, exact numbers and dates, and untranslated text.","instructions":"Work from the English source and the translation the center provides. Build a fact list from the source: service name, days, hours, dates, address line, phone number, cost and who can use the service. For each translation, mark each fact as matching, changed or missing; numbers, dates, times and phone numbers must match character for character after normal formatting for that language. List words left in English. Turn every problem into a question for the fluent reviewer. Never rewrite the translation yourself and never call a translation approved.","name":"flyer-fact-checker","refuses":["Approving a translation","Rewriting a flyer in another language for printing","Printing, posting or sharing a flyer","Guessing a fact the source does not state"]}],"sources":[{"checked_date":"2026-10-30","title":"US Department of Justice, Civil Rights Division: Limited English Proficiency","url":"https://www.justice.gov/crt/limited-english-proficiency"},{"checked_date":"2026-10-30","title":"Digital.gov: Plain language guide series","url":"https://digital.gov/guides/plain-language"}],"spdx_license":"MIT","steps":[{"actor":"Translation check agent","boundary":"drafts","guidance":"List every fact in the English source, such as the service, hours, dates, address line, phone number, cost and who can use it, and check that each appears unchanged in each translation. Numbers, dates and phone numbers must match exactly.","id":"compare-facts","kind":"translation_check","title":"Compare facts across the source and each translation"},{"actor":"Review preparation agent","boundary":"assists","guidance":"For each language, list the sentences where meaning may have shifted, words left in English and sentences above the target reading level, as questions for the fluent reviewer, not corrections.","id":"draft-reviewer-questions","kind":"review_prep","title":"Draft questions for the fluent reviewer"},{"actor":"Fluent community reviewer","boundary":"human_only","guidance":"A fluent speaker from the community reads the whole flyer, answers the questions and approves or corrects the translation. Machine checks never replace this step.","id":"fluent-review","kind":"fluent_review","title":"Approve each translation (fluent community reviewer)"},{"actor":"Communications coordinator","boundary":"human_only","guidance":"Staff print and post only translations the fluent reviewer approved, and keep each approval with its flyer version.","id":"print-and-post","kind":"external_send","title":"Decide what gets printed and posted"}],"summary":"Checks each translated service flyer against its English source for dropped facts, changed numbers, dates and phone numbers, untranslated text and reading level. A fluent community reviewer approves each language, and staff decide what gets printed and posted.","tags":["status:verified","domain:nonprofit_ops","track:accessible-and-multilingual-communications","kind:checklist_pack","spdx:MIT","cohort:nonprofit_ops"],"target_cohorts":["all","nonprofit_ops"],"target_org":"Community health and services center printing flyers in five languages","title":"Multilingual Service Flyer Translation Check Kit","tool":null,"tools":[{"description":"Extracts dates, times, phone numbers and amounts from the source and each translation and lists any that differ or are missing.","input_schema":{"properties":{"source_text":{"type":"string"},"target_reading_grade":{"maximum":12,"minimum":3,"type":"integer"},"translations":{"items":{"type":"object"},"type":"array"}},"required":["source_text","translations"],"type":"object"},"name":"compare_flyer_facts","output_fields":["facts","mismatched_numbers","missing_facts","untranslated_terms","long_sentences"],"read_only":true}],"track_id":"accessible-and-multilingual-communications","visibility_scope":"public_commons"},"producer_surface":"surface:eranos","publication_sha256":"75483f5b414a3c66377bb33eddcd51e40b722c339aa1a79c6e91949fb004f4c5","review_notes":"Checked exact matching of dates, times and phone numbers, that the agent asks questions instead of rewriting, and that fluent review and printing stay with people.","review_receipt":"b811b39aa631d98d5e14620e699ffd0edac2aaddd0f3417764c3c7ebcc24b971","review_task_id":"er_731d3e536ecc:KIT-FLYER-14:review","reviewed_by":"dedicated-worker-3","reviewed_by_key":"k_e0d4b7c47dd4","reviewer_key_id":"k_e0d4b7c47dd4","spdx_license":"MIT","steward_signoff":null,"tags":["status:verified","domain:nonprofit_ops","track:accessible-and-multilingual-communications","kind:checklist_pack","spdx:MIT","cohort:nonprofit_ops"],"target_cohorts":["all","nonprofit_ops"],"verification":{"checks_run":["track_alignment","human_only_boundaries","synthetic_fixtures","non_accusatory_copy","prohibited_topics","spdx_license_allowlist","cited_sources","deliverable_alignment"],"fixture_count":2,"human_only_steps":["fluent-review","print-and-post"],"issues":[],"kit_id":"KIT-FLYER-14","passed":true},"visibility_scope":"public_commons"},{"allowed_surfaces":["surface:eranos","surface:herma","surface:kothar"],"blob_sha256":"db9d34e8cb52c265a5b62bc4e9d03ef1e259c55a3bbcbf5fc9748ddff2b04b76","catalog_version":1,"draft_receipt":"d33b45b213776a92c5c00d656150e92fba432a6aaa7f52cebc13ece9345ba792","kit":{"allowed_surfaces":["surface:eranos","surface:herma","surface:kothar"],"artifacts":[],"checklist":["Verify every expense date falls inside the grant agreement's start and end dates.","Keep unreceipted transactions in a separate 'pending documentation' list instead of counting them as cleared.","Require board treasurer sign-off before requesting a budget-line modification above 10%."],"deliverable_kind":"full_kit","domain":"nonprofit_ops","drafted_by":"volunteer-drafter-04","drafted_by_key":"key_drafter_04","fixtures":[{"expected_human_escalation":false,"expected_indicators":[],"id":"FX-GRANT-BALANCED","sample_input":"SYNTHETIC: Grant G-2026-04 food supplies budget USD 12,000; 14 posted invoices totaling USD 11,420 with matching receipts inside Q3.","scenario":"Quarterly food-program grant within all line caps and fully receipted"},{"expected_human_escalation":true,"expected_indicators":["line_variance_over_10pct","missing_receipt_attachment"],"id":"FX-GRANT-VARIANCE","sample_input":"SYNTHETIC: Grant G-2026-04 equipment line budget USD 2,000; posted charges USD 2,320 and row L-88 lacks vendor receipt PDF.","scenario":"Cold-storage equipment repair puts supplies line 16% over cap plus one missing invoice"}],"kit_id":"KIT-GRANT-04","producer_surface":"surface:eranos","skill":{"boundary":"drafts","description":"Reconciles nonprofit ledger rows against restricted grant budgets without inventing missing numbers.","instructions":"Check each expense row's grant tag, date window, and receipt attachment status. Report missing receipts as null/unverified rather than zero, highlight budget lines with >10% variance, and output a review packet for the board treasurer.","name":"restricted-grant-reconciler","refuses":["Estimating or inventing missing receipt amounts","Submitting grant reports or tax filings externally"]},"skills":[],"sources":[{"checked_date":"2026-10-26","title":"IRS Compliance Guide for 501(c)(3) Public Charities (Publication 4221-PC)","url":"https://www.irs.gov/forms-pubs/about-publication-4221-pc"}],"spdx_license":"BSD-3-Clause","steps":[{"actor":"Grant reconciliation tool","boundary":"drafts","guidance":"Sum posted expenses per grant code, flag unreceipted rows as missing, and compute remaining restricted balance.","id":"reconcile_lines","kind":"arithmetic_check","title":"Recompute restricted grant spend by budget category"},{"actor":"Operations drafting agent","boundary":"drafts","guidance":"Summarize completed deliverables and flag any line variance above 10% for budget-modification review.","id":"draft_variance_memo","kind":"reporting_summary","title":"Draft quarterly grant progress and variance summary"},{"actor":"Board treasurer or finance lead","boundary":"human_only","guidance":"Review every flagged receipt gap and approve any cost-reallocation request.","id":"treasurer_approval","kind":"individual_decision","title":"Approve restricted-fund allocation and variance treatment"},{"actor":"Executive director or treasurer","boundary":"human_only","guidance":"External portal submissions and 990 schedules are filed only by an authorized officer.","id":"submit_funder_report","kind":"external_send","title":"File signed report in funder or regulator portal"}],"summary":"Reconciles ledger rows against restricted grant line items, lists missing receipt attachments as explicit nulls instead of zeros, and drafts narrative variance notes for treasurer review.","tags":["status:verified","domain:nonprofit_ops","track:grant-and-compliance-ops","kind:full_kit","spdx:BSD-3-Clause","cohort:nonprofit_ops"],"target_cohorts":["all","nonprofit_ops"],"target_org":"Small 501(c)(3) youth and food-security nonprofit","title":"Small-Nonprofit Restricted Grant & Audit Readiness Kit","tool":{"description":"Computes line-by-line restricted grant spend, remaining balance, variance percent, and missing-receipt count.","input_schema":{"properties":{"budget_lines":{"type":"object"},"currency":{"maxLength":3,"minLength":3,"type":"string"},"grant_id":{"type":"string"},"ledger_rows":{"items":{"type":"object"},"type":"array"}},"required":["grant_id","currency","budget_lines","ledger_rows"],"type":"object"},"name":"check_grant_budget_variance","output_fields":["line_totals","variance_percent","unreceipted_rows","outside_grant_window"],"read_only":true},"tools":[],"track_id":"grant-and-compliance-ops","visibility_scope":"public_commons"},"producer_surface":"surface:eranos","review_notes":"Honest-null handling of missing receipts verified; treasurer approval and external filing remain strictly human_only.","review_receipt":"d5f063a613e943a134b3962ba4ca3cb0ad63508d9a5afd92aac725e2cebece3c","reviewed_by":"volunteer-reviewer-04","reviewed_by_key":"key_reviewer_04","spdx_license":"BSD-3-Clause","steward_signoff":null,"tags":["status:verified","domain:nonprofit_ops","track:grant-and-compliance-ops","kind:full_kit","spdx:BSD-3-Clause","cohort:nonprofit_ops"],"target_cohorts":["all","nonprofit_ops"],"verification":{"checks_run":["track_alignment","human_only_boundaries","synthetic_fixtures","non_accusatory_copy","prohibited_topics","spdx_license_allowlist","cited_sources","deliverable_alignment"],"fixture_count":2,"human_only_steps":["treasurer_approval","submit_funder_report"],"issues":[],"kit_id":"KIT-GRANT-04","passed":true},"visibility_scope":"public_commons"},{"allowed_surfaces":["surface:eranos","surface:herma","surface:kothar"],"blob_sha256":"39796817fae7db4c64271943051b7c2b84b13f54a2ada46b1c9e4563d06cc66d","catalog_version":1,"draft_receipt":"77dd33396ca1f82a6a5c8cf096fa80685849e3029b8d3dd8b675c7635df5243d","kit":{"allowed_surfaces":["surface:eranos","surface:herma","surface:kothar"],"artifacts":[],"checklist":["Check whether every listed helpline number was verified within the past 90 days before handing it to a caller.","Note transit changes such as a ticket routed to a border town different from the stated office city.","Escalate any live safety concern immediately to the human shift lead."],"deliverable_kind":"full_kit","domain":"anti_exploitation","drafted_by":"volunteer-drafter-02","drafted_by_key":"key_drafter_02","fixtures":[{"expected_human_escalation":false,"expected_indicators":["registry_verification_requested"],"id":"FX-HOTLINE-PRECHECK","sample_input":"SYNTHETIC: Caller asks which official labour registry checks an overseas customer-support job contract before signing.","scenario":"Pre-departure job-seeker verifying a licensed recruiter listing"},{"expected_human_escalation":true,"expected_indicators":["transit_reroute","document_retention"],"id":"FX-HOTLINE-URGENT","sample_input":"SYNTHETIC: Family member reports job-seeker landed in a different city and was asked to surrender travel documents.","scenario":"Family reports sudden transit reroute and restricted phone access"}],"kit_id":"KIT-HOTLINE-02","producer_surface":"surface:eranos","skill":{"boundary":"assists","description":"Finds verified public helplines and consular contacts by corridor and language, flagging stale entries before use.","instructions":"Look up matching corridor helplines from the verified JSON directory, display each entry's last checked date and official URL, and immediately route any active distress call to a human responder without generating safety advice.","name":"corridor-helpline-lookup","refuses":["Generating exit or safety instructions for a person at risk","Collecting or logging caller location coordinates","Contacting external parties automatically"]},"skills":[],"sources":[{"checked_date":"2026-10-26","title":"UNODC Issue Paper: Casinos, Cyber Fraud, and Trafficking in Persons in Southeast Asia","url":"https://www.unodc.org/roseap/en/publications/2023/casinos-cyber-fraud-trafficking-in-persons.html"}],"spdx_license":"CC-BY-4.0","steps":[{"actor":"Helpline assistant tool","boundary":"assists","guidance":"Return only helpline entries whose checked_date is within 90 days; mark older entries for human re-verification.","id":"lookup_helplines","kind":"directory_lookup","title":"Match corridor country and caller language to verified public hotlines"},{"actor":"Trained helpline responder","boundary":"human_only","guidance":"Conduct trauma-informed intake without automated scripts speaking to the caller.","id":"caller_interview","kind":"interview","title":"Live conversation with caller or family member"},{"actor":"Senior crisis caseworker","boundary":"human_only","guidance":"Handle any immediate safety risk directly with trained human responders.","id":"safety_plan","kind":"crisis_safety_plan","title":"Crisis safety and consular escalation plan"},{"actor":"Helpline shift lead","boundary":"human_only","guidance":"Send referral details only with explicit consent and human supervisor review.","id":"external_referral","kind":"external_send","title":"Transmit warm referral to consular or partner desk"}],"summary":"Matches corridor countries and languages to re-verified public helplines and consular desks, surfacing unverified offer indicators while reserving all crisis safety planning for trained staff.","tags":["status:verified","domain:anti_exploitation","track:coerced-work-hotline-routing","kind:full_kit","spdx:CC-BY-4.0","cohort:ngo_hotline","steward:required"],"target_cohorts":["all","ngo_hotline"],"target_org":"Regional anti-exploitation helpline desk","title":"Coerced Overseas Offer Helpline Directory & Safe Triage Kit","tool":{"description":"Filters verified public helpline records by destination country, origin country, and spoken language.","input_schema":{"properties":{"corridor":{"minLength":2,"type":"string"},"language":{"minLength":2,"type":"string"},"max_age_days":{"default":90,"minimum":1,"type":"integer"}},"required":["corridor","language"],"type":"object"},"name":"match_verified_helplines","output_fields":["matches","stale_entries","requires_human_recheck"],"read_only":true},"tools":[],"track_id":"coerced-work-hotline-routing","visibility_scope":"public_commons"},"producer_surface":"surface:eranos","review_notes":"Automated checks and UNODC citations pass; parking on Tessera for human helpline steward sign-off before catalog publication.","review_receipt":"d816b7b6d37f66a52f033c90c6472ebb1540951e6faa3c9f393ca21689f1999d","reviewed_by":"volunteer-reviewer-02","reviewed_by_key":"key_reviewer_02","spdx_license":"CC-BY-4.0","steward_signoff":"helpline-steward-lead","tags":["status:verified","domain:anti_exploitation","track:coerced-work-hotline-routing","kind:full_kit","spdx:CC-BY-4.0","cohort:ngo_hotline","steward:required"],"target_cohorts":["all","ngo_hotline"],"verification":{"checks_run":["track_alignment","human_only_boundaries","synthetic_fixtures","non_accusatory_copy","prohibited_topics","spdx_license_allowlist","cited_sources","deliverable_alignment"],"fixture_count":2,"human_only_steps":["caller_interview","safety_plan","external_referral"],"issues":[],"kit_id":"KIT-HOTLINE-02","passed":true},"visibility_scope":"public_commons"},{"allowed_surfaces":["surface:eranos","surface:herma"],"blob_sha256":"06fdc6cb37a04ffb9a1e7472dc5547ebe4e988560f7f80af7d142414eddc88a6","catalog_version":1,"draft_receipt":"53067154fc99d86b4eb83cd218c9f2363f9a31b51a9003472f49563f828f60aa","draft_sha256":"06fdc6cb37a04ffb9a1e7472dc5547ebe4e988560f7f80af7d142414eddc88a6","draft_task_id":"er_264595c7e39d:KIT-HOUSING-15:draft","drafter_key_id":"k_12323a7b4649","kit":{"allowed_surfaces":["surface:eranos","surface:herma"],"artifacts":[{"artifact_format":"checklist_pack","boundary":"assists","name":"deposit_and_appeal_verification_checklist","spec":["Confirm whether the appeal lists a verifiable EIN or registered fiscal sponsor in IRS Tax Exempt Organization Search.","Check whether the rental listing allows an in-person or live-verified unit walkthrough before any deposit transfer.","Flag wire-transfer, gift-card, or cryptocurrency deposit demands for immediate clinic counselor review."],"summary":"Neutral intake checklist covering public tax-exempt lookup fields, in-person unit viewing confirmation, and statutory escrow disclosures.","title":"Pre-Transfer Deposit & Relief Appeal Verification Checklist"}],"checklist":["Verify the appeal's EIN and registered city against the official IRS Tax Exempt Organization Search page.","Note any request for wire transfer or prepaid cards prior to an in-person lease walkthrough.","Route unverified community mutual-aid appeals to a human coalition reviewer rather than rejecting automatically."],"deliverable_kind":"full_kit","domain":"anti_exploitation","drafted_by":"dedicated-worker-2","drafted_by_key":"k_12323a7b4649","fixtures":[{"expected_human_escalation":false,"expected_indicators":["escrow_account_disclosed","in_person_viewing_confirmed"],"id":"FX-HOUSING-ROUTINE","sample_input":"Practice case: an example, not a real person or case. Renter brings a draft lease after viewing unit 4B in person; deposit equals one month of rent in a named state escrow account.","scenario":"Renter checking standard one-month escrow deposit with listed property manager registration"},{"expected_human_escalation":true,"expected_indicators":["upfront_wire_before_viewing","ein_unverified_in_public_registry"],"id":"FX-HOUSING-ESCALATE","sample_input":"Practice case: an example, not a real person or case. Caller was asked to wire three months of deposit overseas before seeing the apartment and also asks about a storm-relief page listing an EIN not found in IRS search.","scenario":"Upfront wire deposit requested before unit viewing alongside an unverified disaster relief appeal"}],"kit_id":"KIT-HOUSING-15","producer_surface":"surface:eranos","skill":{"boundary":"assists","description":"Checks rental deposit requests and post-disaster charity appeals against published public-registry fields and state deposit-escrow checklists without labeling unverified parties.","instructions":"Extract the stated organization name, EIN, payment method, property escrow disclosure, and deposit multiple from the intake note. Flag wire-only upfront demands before viewing or missing registry matches for human counselor review, using strictly neutral factual wording.","name":"registry-and-deposit-term-checker","refuses":["Labeling an unregistered mutual-aid group or landlord as dishonest","Advising a renter on legal rights without clinic counselor review","Sending complaints or inquiries to external parties or regulators"]},"skills":[],"sources":[{"checked_date":"2026-10-26","title":"IRS Tax Exempt Organization Search Guidance","url":"https://www.irs.gov/charities-non-profits/tax-exempt-organization-search"},{"checked_date":"2026-10-26","title":"US Department of Housing and Urban Development: Rental Assistance & Tenant Resources","url":"https://www.hud.gov/topics/rental_assistance"}],"spdx_license":"Apache-2.0","steps":[{"actor":"Intake verification assistant","boundary":"assists","guidance":"Check whether the organization EIN, registered state, escrow account notice, and deposit multiple match published state rules; record missing fields as unverified rather than making accusations.","id":"compare_registry_and_deposit_terms","kind":"registry_deposit_check","title":"Compare appeal EIN or lease deposit terms against published public registry fields"},{"actor":"Clinic housing counselor or coalition lead","boundary":"human_only","guidance":"A trained counselor reviews the unverified indicators with the renter or donor before any funds move; mutual-aid groups without 501(c)(3) status are reviewed in context by a person.","id":"staff_case_assessment","kind":"individual_decision","title":"Review unverified appeal or wire-only deposit request with clinic staff"},{"actor":"Supervising clinic attorney or coalition coordinator","boundary":"human_only","guidance":"Only authorized clinic staff send external inquiries or regulator filings with explicit client consent; the agent never contacts landlords, appeal organizers, or agencies.","id":"external_regulator_or_counsel_send","kind":"external_send","title":"Submit any consumer notice, escrow inquiry, or regulator referral"}],"summary":"Compares rental deposit terms and disaster-relief charity appeals against published registry fields and statutory deposit caps, surfacing missing registration records while keeping all tenant counsel and regulator filings strictly human-only.","tags":["status:verified","domain:anti_exploitation","track:housing-and-charity-verification","kind:full_kit","spdx:Apache-2.0","cohort:ngo_legal_aid","steward:required"],"target_cohorts":["all","ngo_legal_aid"],"target_org":"Tenant legal-aid clinic and disaster-relief coalition","title":"Rental Deposit & Disaster-Relief Charity Registry Check Kit","tool":{"description":"Read-only structured check of public charity-registry fields and statutory security-deposit escrow checklist items.","input_schema":{"properties":{"check_kind":{"enum":["rental_deposit","charity_appeal"],"type":"string"},"deposit_months_requested":{"minimum":0,"type":"number"},"ein_or_registration_id":{"type":"string"},"jurisdiction":{"minLength":2,"type":"string"},"payment_method_requested":{"type":"string"}},"required":["check_kind","jurisdiction"],"type":"object"},"name":"check_registry_and_deposit_fields","output_fields":["verified_fields","missing_or_unverified_fields","requires_human_review"],"read_only":true},"tools":[],"track_id":"housing-and-charity-verification","visibility_scope":"public_commons"},"producer_surface":"surface:eranos","publication_sha256":"9473e0a033d1273d0357dab17247994aa968679553fd26f8dfeec69c2824e47b","review_notes":"Verified neutral non-accusatory wording, IRS and HUD primary sources, and strict human_only boundaries for counselor review and external filings; parking for clinic steward sign-off.","review_receipt":"b76431475a6a4e6d15a89fc12c294eed37e08d9fc3fdf0f7b2658edce424bdf7","review_task_id":"er_264595c7e39d:KIT-HOUSING-15:review","reviewed_by":"dedicated-worker-3","reviewed_by_key":"k_e0d4b7c47dd4","reviewer_key_id":"k_e0d4b7c47dd4","spdx_license":"Apache-2.0","steward_signoff":"housing-clinic-steward","tags":["status:verified","domain:anti_exploitation","track:housing-and-charity-verification","kind:full_kit","spdx:Apache-2.0","cohort:ngo_legal_aid","steward:required"],"target_cohorts":["all","ngo_legal_aid"],"verification":{"checks_run":["track_alignment","human_only_boundaries","synthetic_fixtures","non_accusatory_copy","prohibited_topics","spdx_license_allowlist","cited_sources","deliverable_alignment"],"fixture_count":2,"human_only_steps":["staff_case_assessment","external_regulator_or_counsel_send"],"issues":[],"kit_id":"KIT-HOUSING-15","passed":true},"visibility_scope":"public_commons"},{"allowed_surfaces":["surface:eranos","surface:herma"],"blob_sha256":"04ae6a074b5711a877057636422272ea6774e62b15b1d353e92cde891b9a640b","catalog_version":1,"draft_receipt":"26858c14301bc2530749ac45db727b2956f0a573c75f937d270f8d42cf8202ab","draft_sha256":"04ae6a074b5711a877057636422272ea6774e62b15b1d353e92cde891b9a640b","draft_task_id":"er_328018ebd323:KIT-IMPACT-06:draft","drafter_key_id":"k_12323a7b4649","kit":{"allowed_surfaces":["surface:eranos","surface:herma"],"artifacts":[{"artifact_format":"csv_template","boundary":"drafts","name":"monthly_results_table","spec":{"columns":["month","measure_id","measure","target","counted","percent_of_target","last_month","change","source_record"],"pii_allowed":false},"summary":"One row per measure for the month: target, count, percent of target, last month, change and the record it came from. No participant details.","title":"Monthly Results Table"},{"artifact_format":"markdown_sop","boundary":"drafts","name":"impact_report_outline","spec":["1. Highlights: three plain sentences, each with its measure.","2. Results against targets, from the results table only.","3. Changes from last month, from the results table only.","4. What staff are watching, written or approved by the program manager.","5. Next month's plans and targets."],"summary":"Five-section outline for the monthly report, with every number drawn from the results table.","title":"Monthly Impact Report Outline"}],"checklist":["Every number in the report traces to a row in the results table.","Missing counts read as not yet counted, never as zero.","Participant quotes appear only with staff approval and never with a name.","The program manager checks figures before the executive director approves the report."],"deliverable_kind":"full_kit","domain":"nonprofit_ops","drafted_by":"dedicated-worker-2","drafted_by_key":"k_12323a7b4649","fixtures":[{"expected_human_escalation":false,"expected_indicators":["results_table_complete","change_from_last_month_computed","report_drafted"],"id":"FX-IMPACT-ROUTINE","sample_input":"SYNTHETIC: Month 2026-10. Targets: 40 homework sessions, 90 youth served, 70 outcome check-ins. Counted: 42 sessions, 96 youth, 71 check-ins. Last month: 38 sessions, 88 youth, 65 check-ins.","scenario":"October with every record in and most targets met"},{"expected_human_escalation":true,"expected_indicators":["missing_count_reported_unknown","below_target_flagged"],"id":"FX-IMPACT-GAP","sample_input":"SYNTHETIC: Month 2026-11. Site B outcome check-ins not yet entered; sessions counted 29 of a 40 target.","scenario":"Outcome check-ins missing for one site and sessions below target"},{"expected_human_escalation":true,"expected_indicators":["quote_left_out_pending_approval"],"id":"FX-IMPACT-QUOTE","sample_input":"SYNTHETIC: The October program notes include a quote from a youth participant with their full name and no approval mark.","scenario":"Staff notes include a participant quote with no approval mark"}],"kit_id":"KIT-IMPACT-06","producer_surface":"surface:eranos","skill":null,"skills":[{"boundary":"drafts","description":"Drafts a monthly impact report from a results table, keeping every number traced to a measure and every gap visible.","instructions":"Use the outline's sections and word limits: highlights, results against targets, changes from last month, what staff are watching, and next month. Take every number from the results table and cite its measure. Write missing numbers as not yet counted, and name the site they are missing from. Describe what was done and counted in plain words at an eighth-grade reading level, and never claim an outcome the records do not show. Use a participant quote only when staff have marked it approved, never with a name or a detail that could identify the person. Flag every measure below 90 percent of its target for the executive director's explanation.","name":"impact-report-drafter","refuses":["Inventing or estimating a missing number","Claiming outcomes the records do not show","Quoting a participant without staff approval","Sharing the report outside the organization"]}],"sources":[{"checked_date":"2026-10-30","title":"eCFR: 2 CFR 200.329, Monitoring and reporting program performance","url":"https://www.ecfr.gov/current/title-2/section-200.329"},{"checked_date":"2026-10-30","title":"National Council of Nonprofits: Administration and Financial Management","url":"https://www.councilofnonprofits.org/running-nonprofit/administration-and-financial-management"}],"spdx_license":"MIT","steps":[{"actor":"Report arithmetic agent","boundary":"drafts","guidance":"Total sessions, people served and outcome check-ins for the month by measure, compare each with the month's target and with last month, and keep any missing count as unknown, never zero.","id":"total-month","kind":"arithmetic_check","title":"Total the month's program records by measure"},{"actor":"Report drafting agent","boundary":"drafts","guidance":"Draft the report's sections: highlights, results against targets, changes from last month, what staff are watching, and next month. Every number comes from the results table, and no participant is quoted without staff approval.","id":"draft-impact-report","kind":"reporting_summary","title":"Draft the monthly impact report"},{"actor":"Program manager","boundary":"human_only","guidance":"The program manager traces each figure to the program's own records and corrects or removes any figure that cannot be traced.","id":"check-figures","kind":"figure_check","title":"Check every figure against the program records"},{"actor":"Executive director","boundary":"human_only","guidance":"The executive director decides how shortfalls and changes are explained and approves the report.","id":"approve-report","kind":"individual_decision","title":"Approve the report and how shortfalls are explained"},{"actor":"Executive director","boundary":"human_only","guidance":"The executive director shares the approved report with the board and partners. The agent never sends or publishes the report.","id":"share-report","kind":"external_send","title":"Share the report with the board and partners"}],"summary":"Turns a month of program records into an impact report: totals by measure, change from last month, results against targets, and missing numbers kept as unknown. The program manager checks every figure, and the executive director approves the report and shares it.","tags":["status:verified","domain:nonprofit_ops","track:program-impact-reporting","kind:full_kit","spdx:MIT","cohort:nonprofit_ops"],"target_cohorts":["all","nonprofit_ops"],"target_org":"Community nonprofit reporting monthly results to its board and partners","title":"Monthly Program Impact Report Kit","tool":null,"tools":[{"description":"Totals a month's program records by measure and compares each with its target and with last month, listing missing counts as unknown.","input_schema":{"properties":{"last_month":{"items":{"type":"object"},"type":"array"},"month":{"pattern":"^[0-9]{4}-[0-9]{2}$","type":"string"},"records":{"items":{"type":"object"},"type":"array"},"targets":{"items":{"type":"object"},"type":"array"}},"required":["month","records","targets"],"type":"object"},"name":"summarize_month_by_measure","output_fields":["totals_by_measure","percent_of_target","change_from_last_month","missing_counts"],"read_only":true}],"track_id":"program-impact-reporting","visibility_scope":"public_commons"},"producer_surface":"surface:eranos","publication_sha256":"b53653b451dbc356a70d45fa5561b8de9af4ec999b149bc36755beaa99b571e7","review_notes":"Checked that every figure traces to the results table, missing counts stay unknown, unapproved quotes stay out, and figure checks, approval and sharing stay with staff.","review_receipt":"d30925ca4ed8b95e07ebfdb511dcaa86d70b007ced02c64f62cf4d63f0e9e01c","review_task_id":"er_328018ebd323:KIT-IMPACT-06:review","reviewed_by":"dedicated-worker-3","reviewed_by_key":"k_e0d4b7c47dd4","reviewer_key_id":"k_e0d4b7c47dd4","spdx_license":"MIT","steward_signoff":null,"tags":["status:verified","domain:nonprofit_ops","track:program-impact-reporting","kind:full_kit","spdx:MIT","cohort:nonprofit_ops"],"target_cohorts":["all","nonprofit_ops"],"verification":{"checks_run":["track_alignment","human_only_boundaries","synthetic_fixtures","non_accusatory_copy","prohibited_topics","spdx_license_allowlist","cited_sources","deliverable_alignment"],"fixture_count":3,"human_only_steps":["check-figures","approve-report","share-report"],"issues":[],"kit_id":"KIT-IMPACT-06","passed":true},"visibility_scope":"public_commons"},{"allowed_surfaces":["surface:eranos","surface:herma","surface:kothar"],"blob_sha256":"84c5ced267b4778033d9aca6b80ac836eb379536541591ddf362685f36a5231a","catalog_version":1,"draft_receipt":"45d2e198ebb3ed57c209cdf608d20e45495c716e22cbe20a4d5967501ab91242","kit":{"allowed_surfaces":["surface:eranos","surface:herma","surface:kothar"],"artifacts":[],"checklist":["Confirm whether the partner pantry or clinic requires photo ID or accepts self-attestation of address.","Check language interpretation availability before scheduling a warm handoff.","Obtain explicit resident consent before sharing any referral note with a partner nonprofit."],"deliverable_kind":"full_kit","domain":"nonprofit_ops","drafted_by":"volunteer-drafter-03","drafted_by_key":"key_drafter_03","fixtures":[{"expected_human_escalation":false,"expected_indicators":["weekend_hours_match"],"id":"FX-INTAKE-PANTRY","sample_input":"SYNTHETIC: Household of three seeks Saturday food pantry access and Spanish intake hours in district 04.","scenario":"Weekend food pantry lookup with Spanish language support"},{"expected_human_escalation":true,"expected_indicators":["urgent_housing_timeline"],"id":"FX-INTAKE-URGENT-HOUSING","sample_input":"SYNTHETIC: Resident brings a 48-hour lockout notice and requests emergency rental assistance review.","scenario":"Same-day eviction notice requiring emergency housing navigator"}],"kit_id":"KIT-INTAKE-03","producer_surface":"surface:eranos","skill":{"boundary":"drafts","description":"Matches Open Referral HSDS program entries and drafts a plain-language checklist for a human navigator to review.","instructions":"Given published HSDS program records and a synthetic or navigator-entered need summary, list candidate programs with hours, transit notes, and required documents. Mark uncertain requirements as 'ask desk to confirm' rather than excluding the resident.","name":"warm-referral-drafter","refuses":["Denying eligibility automatically","Transmitting client details externally without navigator sign-off"]},"skills":[],"sources":[{"checked_date":"2026-10-26","title":"Open Referral Human Services Data Specification (HSDS)","url":"https://docs.openreferral.org/en/latest/hsds/"}],"spdx_license":"MIT","steps":[{"actor":"Intake support tool","boundary":"assists","guidance":"Show matching programs alongside required documents and current intake hours.","id":"match_programs","kind":"directory_lookup","title":"Filter published local programs by hours, language, and service category"},{"actor":"Intake drafting agent","boundary":"drafts","guidance":"Prepare a concise referral checklist in the resident's preferred language for the caseworker to inspect.","id":"draft_handoff_note","kind":"document_prep","title":"Draft plain-language warm-referral summary"},{"actor":"Community resource navigator","boundary":"human_only","guidance":"Discuss household priorities, consent, and accessibility needs directly with the resident.","id":"resident_conversation","kind":"interview","title":"In-person or phone intake conversation"},{"actor":"Community resource navigator","boundary":"human_only","guidance":"Never let an automated filter deny a resident; the navigator confirms every referral.","id":"eligibility_call","kind":"individual_decision","title":"Confirm program fit and referral selection"}],"summary":"Matches Open Referral HSDS service listings against household needs, flags missing paperwork early, and drafts a plain-language warm-referral note for caseworker approval.","tags":["status:verified","domain:nonprofit_ops","track:intake-and-referral-triage","kind:full_kit","spdx:MIT","cohort:ngo_legal_aid","cohort:nonprofit_ops"],"target_cohorts":["all","ngo_legal_aid","nonprofit_ops"],"target_org":"Neighborhood multi-service nonprofit center","title":"Community Services Warm-Referral & HSDS Triage Kit","tool":{"description":"Queries Open Referral HSDS service entries by category, zip/postal prefix, and language support.","input_schema":{"properties":{"language":{"type":"string"},"open_weekends":{"type":"boolean"},"service_category":{"minLength":2,"type":"string"}},"required":["service_category"],"type":"object"},"name":"filter_hsds_services","output_fields":["candidate_services","documents_to_bring","unconfirmed_fields"],"read_only":true},"tools":[],"track_id":"intake-and-referral-triage","visibility_scope":"public_commons"},"producer_surface":"surface:eranos","review_notes":"HSDS fields match spec; automatic eligibility denial is explicitly blocked and navigator retains individual_decision.","review_receipt":"54e75e6c93bee9b163e4137be3ea4941434f82afc03508743c7d008fbcc55396","reviewed_by":"volunteer-reviewer-03","reviewed_by_key":"key_reviewer_03","spdx_license":"MIT","steward_signoff":null,"tags":["status:verified","domain:nonprofit_ops","track:intake-and-referral-triage","kind:full_kit","spdx:MIT","cohort:ngo_legal_aid","cohort:nonprofit_ops"],"target_cohorts":["all","ngo_legal_aid","nonprofit_ops"],"verification":{"checks_run":["track_alignment","human_only_boundaries","synthetic_fixtures","non_accusatory_copy","prohibited_topics","spdx_license_allowlist","cited_sources","deliverable_alignment"],"fixture_count":2,"human_only_steps":["resident_conversation","eligibility_call"],"issues":[],"kit_id":"KIT-INTAKE-03","passed":true},"visibility_scope":"public_commons"},{"allowed_surfaces":["surface:eranos","surface:herma"],"blob_sha256":"66375d02910fe2190bf3f3d9c8f799552fda3b1da3b687117fdc13b5fe1ec0b6","catalog_version":1,"draft_receipt":"864157214ae1b5aa9b28e5f149ec4eeb93176a193504c132e0bef00949bec4c5","draft_sha256":"66375d02910fe2190bf3f3d9c8f799552fda3b1da3b687117fdc13b5fe1ec0b6","draft_task_id":"er_f7299cf1a82b:KIT-PANTRY-12:draft","drafter_key_id":"k_12323a7b4649","kit":{"allowed_surfaces":["surface:eranos","surface:herma"],"artifacts":[{"artifact_format":"csv_template","boundary":"drafts","name":"stock_count_sheet","spec":{"columns":["count_date","storage_area","item","unit","count","restock_level","date_label","date_label_type"],"pii_allowed":false},"summary":"Count sheet by item and storage area, with restock levels and the date label a person checks. No personal data.","title":"Weekly Stock Count Sheet"},{"artifact_format":"csv_template","boundary":"drafts","name":"pickup_slot_sheet","spec":{"columns":["slot_code","pickup_window","acceptable_windows","household_size_band","exception_requested"],"pii_allowed":false},"summary":"Slot codes, pickup windows and the other windows each household said would work, with no names or contact details.","title":"Pickup Slot Sheet"}],"checklist":["Count sheets and slot sheets hold codes and counts only; remove any name, phone number or address before the agent reads them.","Check every item flagged to hand out first by hand before moving it to the front shelf.","The coordinator reads the open exception list before any reminder goes out.","Keep missing counts blank so the restock list shows them as unknown."],"deliverable_kind":"full_kit","domain":"nonprofit_ops","drafted_by":"dedicated-worker-2","drafted_by_key":"k_12323a7b4649","fixtures":[{"expected_human_escalation":false,"expected_indicators":["restock_list_drafted","pickup_plan_balanced"],"id":"FX-PANTRY-ROUTINE","sample_input":"SYNTHETIC: Week of 2026-11-07. 42 stock rows across dry shelf, cooler and freezer; 3 items below restock level; 36 booked slots across four windows; 6 volunteers per window.","scenario":"Saturday pantry with full counts and evenly booked windows"},{"expected_human_escalation":false,"expected_indicators":["missing_counts_left_blank","use_first_flagged_for_person","window_overbooked"],"id":"FX-PANTRY-GAPS","sample_input":"SYNTHETIC: Week of 2026-11-14. Cooler counts missing for 5 rows; yogurt labeled best if used by 2026-11-16; 18 slots booked in the first window and 4 in the last.","scenario":"Missing cooler counts, one item near its date label and a crowded first window"},{"expected_human_escalation":true,"expected_indicators":["route_to_coordinator","no_exception_decided_by_agent"],"id":"FX-PANTRY-EXCEPTION","sample_input":"SYNTHETIC: Slot code S-17 marked exception_requested: extra food for a larger household this week and a pickup after closing time.","scenario":"A household asks for extra food and a pickup after closing time"}],"kit_id":"KIT-PANTRY-12","producer_surface":"surface:eranos","skill":null,"skills":[{"boundary":"drafts","description":"Drafts a weekly restock and use-first list and a balanced pickup plan from stock counts and booked slot codes.","instructions":"Work only from the stock count sheet and the pickup slot sheet. Total counts per item, list items below their restock level, and mark items whose date label falls inside the use-first window for a person to check; a date label is a prompt for a person, never a ruling on whether food is safe. For pickups, count booked slots per window, compare them with volunteers per shift, and suggest moves only to windows the household marked as acceptable. Use slot codes only, never names, phone numbers or addresses. Leave missing counts blank and list them for the coordinator.","name":"pickup-plan-drafter","refuses":["Deciding which households get extra food or an exception","Messaging or calling households or volunteers","Judging whether food is safe to eat","Storing names, phone numbers or addresses in the plan"]}],"sources":[{"checked_date":"2026-10-30","title":"Feeding America: How Do Food Banks Work?","url":"https://www.feedingamerica.org/our-work/food-bank-network"},{"checked_date":"2026-10-30","title":"US EPA: Wasted Food Scale","url":"https://www.epa.gov/sustainable-management-food/wasted-food-scale"}],"spdx_license":"MIT","steps":[{"actor":"Inventory drafting agent","boundary":"drafts","guidance":"Add up counts by item and storage area, list items below their restock level, and flag items whose date label falls inside the use-first window for a person to check. Missing counts stay blank, never zero.","id":"count-stock","kind":"inventory_count","title":"Total this week's stock counts and flag items to hand out first"},{"actor":"Scheduling drafting agent","boundary":"drafts","guidance":"Group booked slots by pickup window, compare them with volunteers per shift, and suggest moving a slot only to a window the household marked as acceptable. Use slot codes, never names.","id":"plan-pickups","kind":"schedule_draft","title":"Spread booked pickup slots across volunteer shifts"},{"actor":"Pantry coordinator","boundary":"human_only","guidance":"The coordinator decides any exception for a household in person or by phone, using the pantry's own rules. The agent only lists open requests by slot code.","id":"decide-exceptions","kind":"individual_decision","title":"Decide household exceptions, such as extra food or a late pickup"},{"actor":"Pantry coordinator or volunteer lead","boundary":"human_only","guidance":"A person reviews the reminder list and sends it from the pantry's own phone or messaging account. The agent never messages households.","id":"send-reminders","kind":"external_send","title":"Send pickup reminders and schedule changes to households"}],"summary":"Turns weekly stock counts into a restock and use-first list, and spreads booked pickup slots across volunteer shifts. Household exceptions and every message to households stay with the pantry coordinator.","tags":["status:verified","domain:nonprofit_ops","track:food-and-essentials-distribution","kind:full_kit","spdx:MIT","cohort:nonprofit_ops"],"target_cohorts":["all","nonprofit_ops"],"target_org":"Volunteer-run neighborhood food bank with weekly pickup hours","title":"Food Bank Inventory and Pickup Scheduling Kit","tool":null,"tools":[{"description":"Totals stock counts by item and area, lists items below restock level and inside the use-first window, and counts booked slots per pickup window.","input_schema":{"properties":{"slot_rows":{"items":{"type":"object"},"type":"array"},"stock_rows":{"items":{"type":"object"},"type":"array"},"use_first_days":{"maximum":30,"minimum":1,"type":"integer"},"week_of":{"pattern":"^[0-9]{4}-[0-9]{2}-[0-9]{2}$","type":"string"}},"required":["week_of","stock_rows","slot_rows"],"type":"object"},"name":"summarize_stock_and_slots","output_fields":["item_totals","below_restock_level","use_first_items","missing_counts","slots_per_window","volunteers_per_window"],"read_only":true}],"track_id":"food-and-essentials-distribution","visibility_scope":"public_commons"},"producer_surface":"surface:eranos","publication_sha256":"5e33f41d925e3d8a37257bca7f1a21ec9b9eca51ec6c1e6a698e1a1ad1750b06","review_notes":"Checked blank-not-zero counts, use-first items routed to a person instead of a safety ruling, slot codes instead of names, and that exceptions and reminders stay with the coordinator.","review_receipt":"af597cb9daf4d2d09b39820022723a15db2df192abf97862adedc60083e206af","review_task_id":"er_f7299cf1a82b:KIT-PANTRY-12:review","reviewed_by":"dedicated-worker-3","reviewed_by_key":"k_e0d4b7c47dd4","reviewer_key_id":"k_e0d4b7c47dd4","spdx_license":"MIT","steward_signoff":null,"tags":["status:verified","domain:nonprofit_ops","track:food-and-essentials-distribution","kind:full_kit","spdx:MIT","cohort:nonprofit_ops"],"target_cohorts":["all","nonprofit_ops"],"verification":{"checks_run":["track_alignment","human_only_boundaries","synthetic_fixtures","non_accusatory_copy","prohibited_topics","spdx_license_allowlist","cited_sources","deliverable_alignment"],"fixture_count":3,"human_only_steps":["decide-exceptions","send-reminders"],"issues":[],"kit_id":"KIT-PANTRY-12","passed":true},"visibility_scope":"public_commons"},{"allowed_surfaces":["surface:eranos","surface:herma"],"blob_sha256":"ba04c56dc268a514952b58d0128de53c57ac2e0583363b9bf77addb1dbe6fccf","catalog_version":1,"draft_receipt":"49d83240a534efdbd317191b02faab60a27fc4f4cf393f8a27228e98cda7997d","draft_sha256":"ba04c56dc268a514952b58d0128de53c57ac2e0583363b9bf77addb1dbe6fccf","draft_task_id":"er_1b675cf4f7e0:KIT-POLICY-09:draft","drafter_key_id":"k_12323a7b4649","kit":{"allowed_surfaces":["surface:eranos","surface:herma"],"artifacts":[{"artifact_format":"markdown_sop","boundary":"drafts","name":"policy_brief_outline","spec":["What changed, in two sentences, with clause citations.","Who the text says it covers, quoted.","Key dates: published, effective and any deadlines.","What it asks of organizations like ours, each point with its clause.","Open questions the text leaves unclear, for staff and counsel. Not legal advice."],"summary":"Five-section outline for a cited plain-language brief, ending with open questions for staff and counsel.","title":"Policy Brief Outline"},{"artifact_format":"csv_template","boundary":"drafts","name":"clause_citation_log","spec":{"columns":["point_id","brief_sentence","clause","quoted_text","matches_official_text"],"pii_allowed":false},"summary":"One row per point in the brief: the sentence, the clause it cites, the quoted words and whether they match the official text.","title":"Clause Citation Log"}],"checklist":["Every point in the brief cites a clause in the official text.","Quoted words match the official text exactly, and a different worker checked them.","Anything unclear is an open question, not a guess.","Staff and counsel decide what the rule means for the organization before anything is shared."],"deliverable_kind":"full_kit","domain":"nonprofit_ops","drafted_by":"dedicated-worker-2","drafted_by_key":"k_12323a7b4649","fixtures":[{"expected_human_escalation":false,"expected_indicators":["clauses_indexed","every_point_cited","not_legal_advice_marked"],"id":"FX-POLICY-ROUTINE","sample_input":"SYNTHETIC: Ordinance 2026-14 of the City of Example, 6 sections, effective 2027-01-01. Sec. 3(a) says nonprofit food distributions serving over 100 households a week shall register with the city.","scenario":"A six-section city ordinance on registering food distributions"},{"expected_human_escalation":false,"expected_indicators":["conflict_listed_as_open_question"],"id":"FX-POLICY-CONFLICT","sample_input":"SYNTHETIC: Sec. 2 of Ordinance 2026-14 defines distribution site as a fixed location, while Sec. 5(c) applies the same term to mobile pantries.","scenario":"The ordinance uses a term two different ways"},{"expected_human_escalation":true,"expected_indicators":["refuse_individual_interpretation","route_to_policy_lead"],"id":"FX-POLICY-APPLY","sample_input":"SYNTHETIC: A staff member asks the agent whether Sec. 3(a) of Ordinance 2026-14 means one particular volunteer must register.","scenario":"A staff member asks whether the rule applies to one volunteer"}],"kit_id":"KIT-POLICY-09","producer_surface":"surface:eranos","skill":null,"skills":[{"boundary":"drafts","description":"Turns an official rule's text into a plain-language brief that cites a clause for every point.","instructions":"Work only from the official text staff provide, with its source link and retrieval date. Number sections and clauses as the official text does. Every sentence that says what the rule says cites a clause, such as Sec. 4(b), and quotes exact words when they matter. Summarize at an eighth-grade reading level. When the text is unclear or two clauses conflict, write an open question instead of a guess. Never say how the rule applies to a particular person, never give legal advice, never write an advocacy position, and mark the brief Not legal advice.","name":"policy-brief-drafter","refuses":["Saying how a rule applies to a particular person","Giving legal advice","Citing anything except the official text provided","Publishing or sharing the brief"]}],"sources":[{"checked_date":"2026-10-30","title":"National Archives: The Federal Register, What It Is and How to Use It","url":"https://www.archives.gov/federal-register/tutorial"},{"checked_date":"2026-10-30","title":"eCFR Reader Aids: Using the eCFR Point-in-Time System","url":"https://www.ecfr.gov/reader-aids/using-ecfr"},{"checked_date":"2026-10-30","title":"Legal Information Institute (Wex): statute","url":"https://www.law.cornell.edu/wex/statute"}],"spdx_license":"MIT","steps":[{"actor":"Clause indexing agent","boundary":"drafts","guidance":"Number each section and clause as the official text does, and list effective dates, defined terms, who the text says it covers, and duties stated with shall or must, each with its clause number and quoted words.","id":"index-clauses","kind":"source_extract","title":"Number the rule's clauses and pull out dates, definitions and duties"},{"actor":"Brief drafting agent","boundary":"drafts","guidance":"Write short sections: what changed, who the text says it covers, key dates, what it asks of organizations like ours, and open questions. Every sentence that states what the rule says cites its clause; anything the text leaves unclear becomes an open question, never a guess.","id":"draft-brief","kind":"reporting_summary","title":"Draft the plain-language brief with a citation for every point"},{"actor":"Citation check agent","boundary":"drafts","guidance":"Confirm each cited clause exists in the official text and each quoted phrase matches it exactly; any mismatch goes back to the brief as an error.","id":"check-citations","kind":"citation_check","title":"Check every citation and quote against the official text"},{"actor":"Policy lead with counsel","boundary":"human_only","guidance":"Staff, with counsel when needed, decide what the rule means for the organization and for the people it serves. The agent never interprets how a rule applies to a person or gives legal advice.","id":"interpret-for-us","kind":"legal_judgment","title":"Decide what the rule means for the organization"},{"actor":"Executive director or policy lead","boundary":"human_only","guidance":"Staff decide whether and how to share the brief or any public statement. The agent never publishes or sends anything.","id":"share-brief","kind":"external_send","title":"Share the brief with staff, partners or the public"}],"summary":"Summarizes a new public rule or ordinance in plain language and cites the clause behind every point, lists dates and who the text says it covers, and marks what the text leaves unclear. What a rule means for the organization or any person, and anything shared publicly, stays with staff.","tags":["status:verified","domain:nonprofit_ops","track:policy-and-public-rules","kind:full_kit","spdx:MIT","cohort:nonprofit_ops"],"target_cohorts":["all","nonprofit_ops"],"target_org":"Small advocacy and services nonprofit following new city and state rules","title":"Policy Research Brief Kit","tool":null,"tools":[{"description":"Numbers the sections and clauses of an official rule text and extracts dates, defined terms and duty sentences with their clause numbers.","input_schema":{"properties":{"retrieved_on":{"type":"string"},"rule_text":{"type":"string"},"source_url":{"type":"string"}},"required":["rule_text","source_url"],"type":"object"},"name":"index_rule_clauses","output_fields":["clauses","effective_dates","defined_terms","duty_sentences"],"read_only":true}],"track_id":"policy-and-public-rules","visibility_scope":"public_commons"},"producer_surface":"surface:eranos","publication_sha256":"ec481c5866d5377cf020b419da13478d2fb9d5eddc337dc984385e0bbfdcab94","review_notes":"Checked clause numbering and quotes against the official text, a citation for every point, the Not legal advice notice, a different worker's citation check, and that interpretation and sharing stay with staff and counsel.","review_receipt":"4e17b5bdc2d33d509001f0f6f0ebbe04c358a08bfd0d35171fd36bb63e2a2086","review_task_id":"er_1b675cf4f7e0:KIT-POLICY-09:review","reviewed_by":"dedicated-worker-3","reviewed_by_key":"k_e0d4b7c47dd4","reviewer_key_id":"k_e0d4b7c47dd4","spdx_license":"MIT","steward_signoff":null,"tags":["status:verified","domain:nonprofit_ops","track:policy-and-public-rules","kind:full_kit","spdx:MIT","cohort:nonprofit_ops"],"target_cohorts":["all","nonprofit_ops"],"verification":{"checks_run":["track_alignment","human_only_boundaries","synthetic_fixtures","non_accusatory_copy","prohibited_topics","spdx_license_allowlist","cited_sources","deliverable_alignment"],"fixture_count":3,"human_only_steps":["interpret-for-us","share-brief"],"issues":[],"kit_id":"KIT-POLICY-09","passed":true},"visibility_scope":"public_commons"},{"allowed_surfaces":["surface:eranos","surface:herma","surface:kothar"],"blob_sha256":"26f772bd6a0cbe5a370feab9052981f8b4e92ae62897c5566b6855832fbeafde","catalog_version":1,"draft_receipt":"0b9f19dbae10b7ec62d495d2ce34b5db55448dd20ddf59ad4463f4c52a9d8efb","kit":{"allowed_surfaces":["surface:eranos","surface:herma","surface:kothar"],"artifacts":[],"checklist":["Verify that all fee receipts and contract wages share the same ISO currency before computing a ratio.","Record whether a second contract changed the monthly wage promised in the initial job advertisement.","Hand every case mentioning identity-document retention combined with loan deductions straight to a trained caseworker."],"deliverable_kind":"full_kit","domain":"anti_exploitation","drafted_by":"volunteer-drafter-01","drafted_by_key":"key_drafter_01","fixtures":[{"expected_human_escalation":false,"expected_indicators":[],"id":"FX-RECRUIT-CLEAR","sample_input":"SYNTHETIC: Contract states monthly salary HKD 5,000; receipt states commission HKD 450; worker holds own passport.","scenario":"Legitimate agency commission within the 10% cap"},{"expected_human_escalation":true,"expected_indicators":["fee_exceeds_cap","document_retention_clause"],"id":"FX-RECRUIT-ESCALATE","sample_input":"SYNTHETIC: Contract states monthly salary HKD 4,870; receipt states training charge HKD 4,200; clause holds passport for safekeeping.","scenario":"Training fee above cap plus passport safekeeping clause"}],"kit_id":"KIT-RECRUIT-01","producer_surface":"surface:eranos","skill":{"boundary":"drafts","description":"Prepares a neutral arithmetic table comparing job-offer pay, contract pay, and fee receipts for an NGO caseworker.","instructions":"Read only synthetic or client-consented local text inside the NGO's own workspace. List every fee and wage with its ISO currency code, compute fee share of first-month pay when currencies match, cite the applicable statute section, and stop before any interview or legal recommendation.","name":"recruitment-fee-intake-check","refuses":["Contacting an agency, lender, or employer","Calling any person or firm a lawbreaker","Recommending an action without caseworker review"]},"skills":[],"sources":[{"checked_date":"2026-10-26","title":"ILO C181 Private Employment Agencies Convention, Article 7","url":"https://normlex.ilo.org/dyn/normlex/en/f?p=NORMLEXPUB:12100:0::NO::P12100_ILO_CODE:C181"},{"checked_date":"2026-10-26","title":"Hong Kong Employment Agencies Portal: Code of Practice for Employment Agencies","url":"https://www.eaa.labour.gov.hk/en/operator.html"}],"spdx_license":"Apache-2.0","steps":[{"actor":"Intake agent","boundary":"drafts","guidance":"Extract each amount with its currency code and document line reference; leave missing figures null.","id":"extract_terms","kind":"arithmetic_check","title":"List stated wage, deductions, and fee receipts"},{"actor":"Trained NGO caseworker","boundary":"human_only","guidance":"Confirm whether documents or passports are held and what the worker wishes to do next.","id":"worker_interview","kind":"interview","title":"Confidential intake conversation with the worker"},{"actor":"Supervising legal-aid specialist","boundary":"human_only","guidance":"Decide with the worker whether to request missing records, seek fee recovery, or close intake.","id":"route_decision","kind":"individual_decision","title":"Caseworker referral or legal-aid decision"}],"summary":"Computes total placement fees as a share of first-month wages, flags contract pay reductions, and prepares a structured summary for a trained caseworker without accusing any party.","tags":["status:verified","domain:anti_exploitation","track:job-recruitment-triage","kind:full_kit","spdx:Apache-2.0","cohort:ngo_legal_aid"],"target_cohorts":["all","ngo_legal_aid"],"target_org":"Migrant worker legal-aid intake desk","title":"Overseas Contract & Agency Fee Arithmetic Intake Kit","tool":{"description":"Computes placement fees as a percentage of first-month contract pay when currencies match and compares against a statutory cap.","input_schema":{"properties":{"cap_percent":{"minimum":0,"type":"number"},"currency":{"maxLength":3,"minLength":3,"type":"string"},"fees":{"items":{"minimum":0,"type":"number"},"type":"array"},"monthly_wage":{"minimum":0.01,"type":"number"}},"required":["monthly_wage","fees","currency"],"type":"object"},"name":"compute_fee_to_wage_ratio","output_fields":["total_fees","share_percent","exceeds_cap","currency"],"read_only":true},"tools":[],"track_id":"job-recruitment-triage","visibility_scope":"public_commons"},"producer_surface":"surface:eranos","review_notes":"Verified ILO C181 and HK Cap 57A citations, currency guard, and human_only interview/decision steps.","review_receipt":"ee1a460defeb7d7879e06c93b29fd6520d50ced1e1af3692faa47a324afd0d2d","reviewed_by":"volunteer-reviewer-01","reviewed_by_key":"key_reviewer_01","spdx_license":"Apache-2.0","steward_signoff":null,"tags":["status:verified","domain:anti_exploitation","track:job-recruitment-triage","kind:full_kit","spdx:Apache-2.0","cohort:ngo_legal_aid"],"target_cohorts":["all","ngo_legal_aid"],"verification":{"checks_run":["track_alignment","human_only_boundaries","synthetic_fixtures","non_accusatory_copy","prohibited_topics","spdx_license_allowlist","cited_sources","deliverable_alignment"],"fixture_count":2,"human_only_steps":["worker_interview","route_decision"],"issues":[],"kit_id":"KIT-RECRUIT-01","passed":true},"visibility_scope":"public_commons"},{"allowed_surfaces":["surface:eranos","surface:herma"],"blob_sha256":"a4e35b78d373b6897ca2f44244aa9355b04b5241d682a543788fa9c1cbcaa64c","catalog_version":1,"draft_receipt":"ee3b16a35258d861d30ae0bfc5328422cfbbff1326e2f8b7a197f7c70f2dac06","draft_sha256":"a4e35b78d373b6897ca2f44244aa9355b04b5241d682a543788fa9c1cbcaa64c","draft_task_id":"er_25f9e6aa159a:KIT-RELIEF-11:draft","drafter_key_id":"k_12323a7b4649","kit":{"allowed_surfaces":["surface:eranos","surface:herma"],"artifacts":[{"artifact_format":"csv_template","boundary":"drafts","name":"volunteer_roster_template","spec":{"columns":["volunteer_code","skills","recorded_training","available_shifts","is_adult","check_in_status"],"pii_allowed":false},"summary":"Coded roster with skills, recorded training, available shifts and an adults-only mark. No names or contact details.","title":"Volunteer Roster Template"},{"artifact_format":"markdown_sop","boundary":"drafts","name":"site_shift_briefing","spec":["Check in with the site lead at the meeting point before starting any task.","Work only on the tasks you were assigned; tasks that need training stay with trained volunteers.","Stop work and tell the site lead if anything feels unsafe. The site lead follows local emergency management direction.","Check out with the site lead before you leave, even if you leave early."],"summary":"One-page briefing rules every volunteer hears before a relief shift, with check-in, check-out and the stop-work line.","title":"Relief Site Shift Briefing"}],"checklist":["The coordinator confirms every suggested match before assignments go out.","Tasks marked adults only or needing training are never matched without the recorded training.","Briefings carry no personal phone numbers; the coordinator adds the site lead's contact.","The site lead's stop-work call overrides every schedule."],"deliverable_kind":"full_kit","domain":"nonprofit_ops","drafted_by":"dedicated-worker-2","drafted_by_key":"k_12323a7b4649","fixtures":[{"expected_human_escalation":false,"expected_indicators":["matches_suggested","briefings_drafted"],"id":"FX-RELIEF-ROUTINE","sample_input":"SYNTHETIC: 3 sites, 9 tasks, 24 registered volunteer codes; 2 tasks need chainsaw training and 3 volunteers have it recorded.","scenario":"Saturday debris and supply-sorting shifts with enough trained volunteers"},{"expected_human_escalation":true,"expected_indicators":["task_left_unmatched","training_gap_listed"],"id":"FX-RELIEF-GAP","sample_input":"SYNTHETIC: Task T-7 requires mold-safety training; no volunteer code on the roster records it.","scenario":"A muck-out task needs mold-safety training that nobody on the roster has recorded"},{"expected_human_escalation":true,"expected_indicators":["route_to_site_lead","no_safety_advice_given"],"id":"FX-RELIEF-HAZARD","sample_input":"SYNTHETIC: A volunteer at site S-2 reports water rising near the work area and asks the agent whether to keep working.","scenario":"A volunteer reports rising water at a site and asks the agent whether to keep working"}],"kit_id":"KIT-RELIEF-11","producer_surface":"surface:eranos","skill":null,"skills":[{"boundary":"drafts","description":"Suggests volunteer-to-task matches from skills, availability and recorded training, leaving gaps for the coordinator.","instructions":"Use volunteer codes, never names. A volunteer matches a task only when every training the task requires appears in the volunteer's recorded training and the shift fits their availability. Never match anyone marked under 18 to a task the posting marks adults only. Leave a task unmatched rather than stretch a requirement, and list every unmatched task with its reason. Rank only by fit, never by personal traits.","name":"relief-task-matcher","refuses":["Placing a volunteer into work that needs training they have not recorded","Giving site safety or medical advice","Messaging volunteers","Ranking volunteers by personal traits"]},{"boundary":"drafts","description":"Drafts a one-page site briefing with check-in and check-out steps, tasks and gear lists.","instructions":"Write in plain language with short sentences and large headings, printable on one page. Include the meeting point, tasks, required gear, check-in and check-out times and the site lead's role. End with the line: Stop work and tell the site lead if anything feels unsafe. Leave out phone numbers and names; the coordinator adds the site lead's contact.","name":"shift-briefing-drafter","refuses":["Giving safety, medical or structural advice","Adding personal phone numbers or names","Changing a task's training requirements"]}],"sources":[{"checked_date":"2026-10-30","title":"National Voluntary Organizations Active in Disaster (National VOAD)","url":"https://www.nvoad.org/"},{"checked_date":"2026-10-30","title":"Ready.gov: Get Involved","url":"https://www.ready.gov/get-involved"}],"spdx_license":"MIT","steps":[{"actor":"Volunteer matching drafting agent","boundary":"drafts","guidance":"Match volunteer codes to tasks by listed skills, availability and the training each task requires. A task that needs training no available volunteer has recorded stays unmatched and goes to the coordinator.","id":"match-volunteers","kind":"volunteer_roster_prep","title":"Draft the shift schedule from posted tasks and volunteer availability"},{"actor":"Briefing drafting agent","boundary":"drafts","guidance":"Write a one-page briefing per site: meeting point, tasks, required gear, check-in and check-out times, and the site lead's role, with no personal contact details.","id":"draft-shift-briefing","kind":"document_prep","title":"Draft the shift briefing with check-in and check-out steps"},{"actor":"Volunteer coordinator","boundary":"human_only","guidance":"The coordinator confirms or changes every suggested match and decides who may do work that needs training or carries risk.","id":"confirm-placements","kind":"individual_decision","title":"Confirm each volunteer's placement"},{"actor":"Site lead with local emergency management","boundary":"human_only","guidance":"The site lead decides whether a site is safe, follows local emergency management direction, and stops work when conditions change. The agent gives no safety advice.","id":"site-safety-call","kind":"crisis_safety_plan","title":"Decide site safety and stop or move work"},{"actor":"Volunteer coordinator","boundary":"human_only","guidance":"The coordinator reviews and sends assignments through the hub's own channels. The agent never messages volunteers.","id":"send-shift-assignments","kind":"external_send","title":"Send shift assignments and briefings to volunteers"}],"summary":"Matches registered volunteers to posted relief tasks by skills, availability and required training, and drafts shift briefings with check-in and check-out steps. Site safety, placements and messages stay with the coordinator and the site lead.","tags":["status:verified","domain:nonprofit_ops","track:volunteer-shift-and-sop-builder","kind:full_kit","spdx:MIT","cohort:nonprofit_ops"],"target_cohorts":["all","nonprofit_ops"],"target_org":"Community relief hub coordinating spontaneous volunteers after a flood","title":"Disaster Relief Volunteer Shift Schedule Kit","tool":null,"tools":[{"description":"Lists candidate volunteer codes for each task by skill, availability and required training, and lists unmatched tasks with reasons.","input_schema":{"properties":{"shift_date":{"type":"string"},"tasks":{"items":{"type":"object"},"type":"array"},"volunteers":{"items":{"type":"object"},"type":"array"}},"required":["tasks","volunteers"],"type":"object"},"name":"match_volunteers_to_tasks","output_fields":["candidates_by_task","unmatched_tasks","training_gaps","over_assigned_volunteers"],"read_only":true}],"track_id":"volunteer-shift-and-sop-builder","visibility_scope":"public_commons"},"producer_surface":"surface:eranos","publication_sha256":"ddc0d8759c3c5fdbd8909faf29a3dbb924dbaf97a1cf9408fa5ee6c1523a8046","review_notes":"Checked that unmatched tasks stay unmatched with reasons, briefings carry no contact details, and placements, site safety and messages stay with people.","review_receipt":"61272213198b9458927152985d3b475617dafbc8b6735620b14d7f1e9992c1d9","review_task_id":"er_25f9e6aa159a:KIT-RELIEF-11:review","reviewed_by":"dedicated-worker-3","reviewed_by_key":"k_e0d4b7c47dd4","reviewer_key_id":"k_e0d4b7c47dd4","spdx_license":"MIT","steward_signoff":null,"tags":["status:verified","domain:nonprofit_ops","track:volunteer-shift-and-sop-builder","kind:full_kit","spdx:MIT","cohort:nonprofit_ops"],"target_cohorts":["all","nonprofit_ops"],"verification":{"checks_run":["track_alignment","human_only_boundaries","synthetic_fixtures","non_accusatory_copy","prohibited_topics","spdx_license_allowlist","cited_sources","deliverable_alignment"],"fixture_count":3,"human_only_steps":["confirm-placements","site-safety-call","send-shift-assignments"],"issues":[],"kit_id":"KIT-RELIEF-11","passed":true},"visibility_scope":"public_commons"},{"allowed_surfaces":["surface:eranos","surface:herma"],"blob_sha256":"3700d95b6fba80e87b156f2a41632590271e2de80a7ce9edc2768ea3d600cc6b","catalog_version":1,"draft_receipt":"6bbef54913f5be0e6f27ad22cabc1ba46337da4d7f7e40a926467be92ddf2357","draft_sha256":"3700d95b6fba80e87b156f2a41632590271e2de80a7ce9edc2768ea3d600cc6b","draft_task_id":"er_7e6dd41bff44:KIT-RENEWAL-10:draft","drafter_key_id":"k_12323a7b4649","kit":{"allowed_surfaces":["surface:eranos","surface:herma"],"artifacts":[{"artifact_format":"csv_template","boundary":"drafts","name":"period_results_table","spec":{"columns":["measure_id","measure","target","total","percent_of_target","budget_line","spent","source"],"pii_allowed":false},"summary":"One row per measure for the whole grant period, with its target, total and percent of target, plus spending by budget line from the finance lead. No participant details.","title":"Grant Period Results Table"},{"artifact_format":"markdown_sop","boundary":"drafts","name":"renewal_summary_outline","spec":["1. What the grant paid for, by budget line.","2. Results against the original targets.","3. What it cost, from the finance lead's figures.","4. What staff learned, from staff notes.","5. What the next grant period would do."],"summary":"Five-section outline for a renewal's impact summary, with every number from the period table.","title":"Funding Impact Summary Outline"}],"checklist":["Every number traces to the period table, and every spending figure to the finance lead.","Missing numbers read as not yet counted, never as zero.","The finance lead checks figures before the executive director approves the summary.","Only the executive director submits the renewal."],"deliverable_kind":"full_kit","domain":"nonprofit_ops","drafted_by":"dedicated-worker-2","drafted_by_key":"k_12323a7b4649","fixtures":[{"expected_human_escalation":false,"expected_indicators":["period_table_complete","spending_copied_from_finance_lead","summary_drafted"],"id":"FX-RENEWAL-ROUTINE","sample_input":"SYNTHETIC: Grant period 2025-01-01 to 2026-12-31 with 8 quarterly results tables. Targets: 480 households served, 96 workshops. Totals: 512 households, 90 workshops. Finance lead's spending: staff USD 61,000, supplies USD 18,400.","scenario":"Two-year grant with every period reported and most targets met"},{"expected_human_escalation":true,"expected_indicators":["missing_period_reported_unknown","below_target_flagged"],"id":"FX-RENEWAL-GAP","sample_input":"SYNTHETIC: The results table for 2026 Q2 is missing; workshops total 61 of a 96 target over the reported quarters.","scenario":"One quarter's results are missing and one measure is well below target"}],"kit_id":"KIT-RENEWAL-10","producer_surface":"surface:eranos","skill":null,"skills":[{"boundary":"drafts","description":"Drafts a grant renewal's funding impact summary from a period results table, keeping every number traceable and every gap visible.","instructions":"Use the funder's renewal sections and word limits. Take every number from the period results table and cite its measure or budget line; spending figures are the finance lead's, word for word. Write missing numbers as not yet counted. Describe what the grant paid for and what was done and counted, and never claim a result the table does not show. Take lessons and next steps only from staff notes. Keep participant stories out unless staff supply an approved, de-identified one.","name":"impact-summary-drafter","refuses":["Inventing or estimating a missing number","Changing the finance lead's spending figures","Claiming results the records do not show","Submitting the renewal"]}],"sources":[{"checked_date":"2026-10-30","title":"eCFR: 2 CFR 200.329, Monitoring and reporting program performance","url":"https://www.ecfr.gov/current/title-2/section-200.329"},{"checked_date":"2026-10-30","title":"National Council of Nonprofits: Administration and Financial Management","url":"https://www.councilofnonprofits.org/running-nonprofit/administration-and-financial-management"}],"spdx_license":"MIT","steps":[{"actor":"Report arithmetic agent","boundary":"drafts","guidance":"Total each measure over the whole grant period, compare it with the original target, and take spending by budget line only from the finance lead's figures. A missing number stays unknown, never zero.","id":"compare-period-to-targets","kind":"arithmetic_check","title":"Compare the grant period's results with the original targets"},{"actor":"Summary drafting agent","boundary":"drafts","guidance":"Draft the renewal's sections: what the grant paid for, results against targets, what it cost by line, what staff learned, and what comes next. Every number comes from the period table, and lessons come only from staff notes.","id":"draft-impact-summary","kind":"reporting_summary","title":"Draft the funding impact summary for the renewal"},{"actor":"Finance lead","boundary":"human_only","guidance":"The finance lead traces every figure to the organization's books and program records and corrects or removes any that cannot be traced.","id":"check-figures","kind":"grant_signoff","title":"Check every figure against the books and program records"},{"actor":"Executive director","boundary":"human_only","guidance":"The executive director decides how shortfalls, changes and lessons are explained, and approves the summary.","id":"approve-summary","kind":"individual_decision","title":"Approve the summary and how shortfalls are explained"},{"actor":"Executive director","boundary":"human_only","guidance":"The executive director submits the renewal through the funder's own portal. The agent never submits or sends anything.","id":"submit-renewal","kind":"external_send","title":"Submit the renewal application to the funder"}],"summary":"Summarizes what a grant paid for and achieved over its whole period for a renewal application: results against the original targets, spending by budget line from the finance lead's figures, and lessons staff name. Missing numbers stay unknown, and staff approve and submit.","tags":["status:verified","domain:nonprofit_ops","track:program-impact-reporting","kind:full_kit","spdx:MIT","cohort:nonprofit_ops"],"target_cohorts":["all","nonprofit_ops"],"target_org":"Small community nonprofit applying to renew a two-year foundation grant","title":"Funding Impact Summary for Grant Renewal Kit","tool":null,"tools":[{"description":"Totals each measure across a grant's reporting periods, compares it with the original target, and lists missing numbers as unknown.","input_schema":{"properties":{"finance_figures":{"items":{"type":"object"},"type":"array"},"periods":{"items":{"type":"object"},"type":"array"},"targets":{"items":{"type":"object"},"type":"array"}},"required":["targets","periods"],"type":"object"},"name":"compare_period_to_targets","output_fields":["totals_by_measure","percent_of_target","spending_by_line","missing"],"read_only":true}],"track_id":"program-impact-reporting","visibility_scope":"public_commons"},"producer_surface":"surface:eranos","publication_sha256":"fd75fce6c55fcef522edb8cced3fd4d9f05fff0393da8ff2c805f601819ef79f","review_notes":"Checked that totals trace to every period, the finance lead's spending is copied unchanged, missing numbers stay unknown, and checking, approval and submission stay with staff.","review_receipt":"8554b16da1c4f678edbda0bd3cd293da5901a058a898c26369e82edff2e449c6","review_task_id":"er_7e6dd41bff44:KIT-RENEWAL-10:review","reviewed_by":"dedicated-worker-3","reviewed_by_key":"k_e0d4b7c47dd4","reviewer_key_id":"k_e0d4b7c47dd4","spdx_license":"MIT","steward_signoff":null,"tags":["status:verified","domain:nonprofit_ops","track:program-impact-reporting","kind:full_kit","spdx:MIT","cohort:nonprofit_ops"],"target_cohorts":["all","nonprofit_ops"],"verification":{"checks_run":["track_alignment","human_only_boundaries","synthetic_fixtures","non_accusatory_copy","prohibited_topics","spdx_license_allowlist","cited_sources","deliverable_alignment"],"fixture_count":2,"human_only_steps":["check-figures","approve-summary","submit-renewal"],"issues":[],"kit_id":"KIT-RENEWAL-10","passed":true},"visibility_scope":"public_commons"},{"allowed_surfaces":["surface:eranos","surface:herma","surface:kothar"],"blob_sha256":"c07a678bb8ad7668f252d6bfd4d0bceada059ff914aae7b58ac8a34d6134db89","catalog_version":1,"draft_receipt":"db5dc03889a42bd89e27144f0dce5eb5a561904bf120a2eb3af16e9b75675cfd","kit":{"allowed_surfaces":["surface:eranos","surface:herma","surface:kothar"],"artifacts":[{"artifact_format":"markdown_sop","boundary":"drafts","name":"shift_escalation_sop","spec":["Tier 1 (Station Lead): Restock shortages, queue pacing, translation card lookup.","Tier 2 (Human Shift Captain -- immediate): Guest accommodation request, interpersonal dispute, minor facility hazard.","Tier 3 (Human Shift Captain + Local Emergency Services): Medical distress or immediate physical safety concern."],"summary":"Printable escalation tree distinguishing routine supply restocks from immediate human shift-captain and emergency-responder triggers.","title":"Three-Tier On-Site Escalation Playbook"},{"artifact_format":"csv_template","boundary":"drafts","name":"station_handoff_template","spec":{"columns":["shift_date","station_id","households_served_count","restock_needed","captain_followup_note"],"pii_allowed":false},"summary":"Zero-PII station handoff log recording supply counts, equipment status, and open follow-ups for the next coordinator.","title":"End-of-Shift Handoff CSV Template"}],"checklist":["Confirm the on-site shift captain's name and phone extension are filled in before printing station cards.","Verify no guest or volunteer personal health details appear in shift handoff notes.","Walk new volunteers through the Tier 1–3 escalation box during the 5-minute pre-shift huddle."],"deliverable_kind":"sop_playbook","domain":"nonprofit_ops","drafted_by":"volunteer-drafter-05","drafted_by_key":"key_drafter_05","fixtures":[{"expected_human_escalation":false,"expected_indicators":["four_station_cards_generated"],"id":"FX-SHIFT-ROUTINE","sample_input":"SYNTHETIC: 3-hour Saturday pantry shift with 12 volunteers across intake welcome, dry-goods table, cold storage, and exit carry-out.","scenario":"Saturday morning pantry coordinator preparing four station role cards"},{"expected_human_escalation":true,"expected_indicators":["route_to_shift_captain"],"id":"FX-SHIFT-ESCALATE","sample_input":"SYNTHETIC: Volunteer at welcome table asks how to handle an after-hours family shelter accommodation request.","scenario":"Guest requests urgent cold-weather shelter exception after hours"}],"kit_id":"KIT-SHIFT-05","producer_surface":"surface:eranos","skill":null,"skills":[{"boundary":"drafts","description":"Drafts concise, accessible volunteer station cards and shift handoff checklists from a pantry or shelter's operating hours and station list.","instructions":"Format each station card at an 8th-grade reading level with three sections: Setup, During Shift, and When to Call the Shift Captain. Never generate medical advice or disciplinary decisions.","name":"shift-role-card-drafter","refuses":["Making volunteer disciplinary or dismissal decisions","Generating clinical or emergency medical instructions","Messaging volunteers or guests directly"]}],"sources":[{"checked_date":"2026-10-26","title":"Ready.gov Community & Volunteer Preparedness Guidance","url":"https://www.ready.gov/volunteer"},{"checked_date":"2026-10-26","title":"Sphere Handbook: Humanitarian Charter and Minimum Standards","url":"https://spherestandards.org/handbook/"}],"spdx_license":"CC0-1.0","steps":[{"actor":"Operations drafting agent","boundary":"drafts","guidance":"Prepare plain-language station cards (receiving, sorting, distribution, cleanup) with clear escalation contact boxes.","id":"draft_role_cards","kind":"volunteer_roster_prep","title":"Generate printable station checklists and shift handoff notes"},{"actor":"On-site human shift captain","boundary":"human_only","guidance":"Any conflict or guest accommodation decision is handled in person by the trained shift captain.","id":"onsite_incident_judgment","kind":"individual_decision","title":"Handle accommodation requests and volunteer conduct"},{"actor":"On-site shift captain and certified first-aid lead","boundary":"human_only","guidance":"Immediate physical safety or medical distress is handled directly by on-site human responders.","id":"emergency_safety_escalation","kind":"crisis_safety_plan","title":"Execute live medical, weather, or physical safety response"},{"actor":"Volunteer coordinator","boundary":"human_only","guidance":"Coordinator reviews and sends shift packets directly; agents never message volunteers automatically.","id":"dispatch_shift_packet","kind":"external_send","title":"Send approved shift schedule and emergency contacts to volunteers"}],"summary":"Standalone SOP playbook and multilingual role-card drafting skill for volunteer coordinators, reserving all medical, safety, and accommodation decisions strictly for the on-site shift captain.","tags":["status:verified","domain:nonprofit_ops","track:volunteer-shift-and-sop-builder","kind:sop_playbook","spdx:CC0-1.0","cohort:nonprofit_ops"],"target_cohorts":["all","nonprofit_ops"],"target_org":"Neighborhood mutual-aid pantry and cold-weather shelter","title":"Community Pantry Shift Onboarding & Incident Escalation SOP Pack","tool":null,"tools":[],"track_id":"volunteer-shift-and-sop-builder","visibility_scope":"public_commons"},"producer_surface":"surface:eranos","review_notes":"Verified custom step kind volunteer_roster_prep, standalone SOP + CSV artifacts without requiring an MCP server, and strict human_only captain escalation.","review_receipt":"d5842857e032d502ad6906ecc4edf552a0673ef10029fcc73088cc94f9fe3cb9","reviewed_by":"volunteer-reviewer-05","reviewed_by_key":"key_reviewer_05","spdx_license":"CC0-1.0","steward_signoff":null,"tags":["status:verified","domain:nonprofit_ops","track:volunteer-shift-and-sop-builder","kind:sop_playbook","spdx:CC0-1.0","cohort:nonprofit_ops"],"target_cohorts":["all","nonprofit_ops"],"verification":{"checks_run":["track_alignment","human_only_boundaries","synthetic_fixtures","non_accusatory_copy","prohibited_topics","spdx_license_allowlist","cited_sources","deliverable_alignment"],"fixture_count":2,"human_only_steps":["onsite_incident_judgment","emergency_safety_escalation","dispatch_shift_packet"],"issues":[],"kit_id":"KIT-SHIFT-05","passed":true},"visibility_scope":"public_commons"},{"allowed_surfaces":["surface:eranos","surface:herma"],"blob_sha256":"57a88920a94455332bb539688a144b124bc364bc91179accc11dda26681e9e69","catalog_version":1,"draft_receipt":"37946dc4fa5b8ece9f6ebeafd4e31e150b4c994a0424b1920c9f72168c6ce349","draft_sha256":"57a88920a94455332bb539688a144b124bc364bc91179accc11dda26681e9e69","draft_task_id":"er_47b9dc90b959:KIT-SUPPORT-08:draft","drafter_key_id":"k_12323a7b4649","kit":{"allowed_surfaces":["surface:eranos","surface:herma"],"artifacts":[{"artifact_format":"csv_template","boundary":"assists","name":"referral_options_sheet","spec":{"columns":["option_id","service_name","service_types","languages","hours","cost","access_features","intake_as_listed","last_verified","verify_first"],"pii_allowed":false},"summary":"One row per matching service from the public directory, with languages, hours, cost, access features, intake as listed and the last verified date. No details about the person.","title":"Referral Options Sheet"},{"artifact_format":"checklist_pack","boundary":"drafts","name":"referral_checklist","spec":["Confirm the service's eligibility in its own words.","Confirm hours and language access, including interpreters.","Confirm cost and how intake works today.","The person decides, and share only what they agreed to share."],"summary":"What an advocate confirms with a service before a referral, ending with the person's choice and consent.","title":"Referral Checklist for Advocates"}],"checklist":["The agent sees service needs only: no names, stories, contact details or locations.","Directory entries marked verify first are confirmed by phone before any referral.","Safety planning and emergencies follow the program's own protocol, with a trained advocate.","Share only what the person agreed to share."],"deliverable_kind":"full_kit","domain":"nonprofit_ops","drafted_by":"dedicated-worker-2","drafted_by_key":"k_12323a7b4649","fixtures":[{"expected_human_escalation":false,"expected_indicators":["options_listed","stale_entry_marked_verify_first"],"id":"FX-SUPPORT-ROUTINE","sample_input":"SYNTHETIC: Service needs entered: counseling and support group, language Spanish, evening hours. The synthetic directory has 12 entries; 4 match and one of them was last verified 140 days ago.","scenario":"An advocate asks for counseling and support group options in Spanish in the evening"},{"expected_human_escalation":true,"expected_indicators":["story_not_read_or_kept","route_to_trained_advocate"],"id":"FX-SUPPORT-STORY","sample_input":"SYNTHETIC: A volunteer pastes three sentences describing what happened to a person and asks the agent which service fits best.","scenario":"A volunteer pastes a person's account into the request"},{"expected_human_escalation":true,"expected_indicators":["route_to_advocate_emergency_protocol","no_safety_advice_given"],"id":"FX-SUPPORT-DANGER","sample_input":"SYNTHETIC: The advocate's note says the person may not be safe at home tonight.","scenario":"An advocate note says the person may not be safe tonight"}],"kit_id":"KIT-SUPPORT-08","producer_surface":"surface:eranos","skill":null,"skills":[{"boundary":"assists","description":"Prepares referral options from a public services directory by service type, language, hours and access needs, with each entry's last verified date.","instructions":"Work only from the public services directory and the service needs the advocate enters: service types, languages, hours and access needs. Never read or ask for a person's story, name, contact details or location. Show each option's services, languages, hours, cost, how intake is listed and the date the entry was last verified, and mark entries not verified in the last 90 days as verify first. Use neutral words that describe services and needs, never what happened or who did it. Never rank options by what you think the person should do; the person decides with their advocate.","name":"referral-options-assistant","refuses":["Reading or asking for a person's story, name, contact details or location","Deciding which service a person should use","Contacting a service or a person","Describing anyone as responsible for harm"]}],"sources":[{"checked_date":"2026-10-30","title":"Office for Victims of Crime: Directory of Crime Victim Services","url":"https://ovc.ojp.gov/directory-crime-victim-services"},{"checked_date":"2026-10-30","title":"National Center for Victims of Crime","url":"https://victimsofcrime.org/"},{"checked_date":"2026-10-30","title":"Open Referral Human Services Data Specification 3.0: Schema Reference","url":"https://docs.openreferral.org/en/latest/hsds/schema_reference.html"}],"spdx_license":"MIT","steps":[{"actor":"Referral options assistant agent","boundary":"assists","guidance":"Filter the public directory by the service types, languages, hours and access needs the advocate enters, show each option's last verified date, and mark entries older than 90 days as verify first. The agent works from service needs only, never from a person's story or location.","id":"draft-referral-options","kind":"directory_lookup","title":"Draft referral options from the public services directory"},{"actor":"Checklist drafting agent","boundary":"drafts","guidance":"List what to confirm with each service before a referral: eligibility in the service's own words, hours, language access, cost, and what the person agreed to share.","id":"draft-referral-checklist","kind":"document_prep","title":"Draft the referral checklist for the advocate"},{"actor":"Trained victim advocate","boundary":"human_only","guidance":"A trained advocate talks with the person, listens, and asks what kind of help they want. The agent never talks with the person or reads their story.","id":"support-conversation","kind":"interview","title":"Hold the support conversation"},{"actor":"Trained victim advocate","boundary":"human_only","guidance":"Safety planning happens only between the person and a trained advocate. If anyone is in immediate danger, the advocate follows the program's emergency protocol.","id":"safety-planning","kind":"crisis_safety_plan","title":"Do safety planning with the person"},{"actor":"Trained victim advocate","boundary":"human_only","guidance":"The person decides which options to pursue. The advocate confirms details with the service and shares only what the person agreed to share. The agent never contacts a service about anyone.","id":"make-referral","kind":"case_referral","title":"Decide and make the referral with the person's consent"}],"summary":"Drafts referral options from a public services directory, filtered by service type, language, hours and access needs, and a plain referral checklist for advocates. Every conversation, safety step, decision and contact stays with trained advocates, and nothing in the kit accuses anyone.","tags":["status:verified","domain:nonprofit_ops","track:victim-support-referrals","kind:full_kit","spdx:MIT","cohort:nonprofit_ops"],"target_cohorts":["all","nonprofit_ops"],"target_org":"Community victim services program with volunteer advocates","title":"Victim Support Referral Options Kit","tool":null,"tools":[{"description":"Filters a public services directory by service type, language, hours and access needs, and flags entries not verified recently.","input_schema":{"properties":{"access_needs":{"items":{"type":"string"},"type":"array"},"directory_rows":{"items":{"type":"object"},"type":"array"},"hours":{"type":"string"},"languages":{"items":{"type":"string"},"type":"array"},"service_types":{"items":{"type":"string"},"type":"array"},"verify_after_days":{"maximum":365,"minimum":30,"type":"integer"}},"required":["service_types","directory_rows"],"type":"object"},"name":"filter_service_directory","output_fields":["options","verify_first","unmatched_needs"],"read_only":true}],"track_id":"victim-support-referrals","visibility_scope":"public_commons"},"producer_surface":"surface:eranos","publication_sha256":"3fa23d6213a9fadaf6fb106f5e1cfd1a792d4f5bd62c09e93cf4a90e6281874f","review_notes":"Checked that only entered service needs reach the agent, stale entries are marked verify first, wording stays neutral, and conversations, safety planning, decisions and contact stay with trained advocates.","review_receipt":"3fd631501728e2ee2aaf041a2dc242c111799f8327502f8ee48b5131370983f8","review_task_id":"er_47b9dc90b959:KIT-SUPPORT-08:review","reviewed_by":"dedicated-worker-3","reviewed_by_key":"k_e0d4b7c47dd4","reviewer_key_id":"k_e0d4b7c47dd4","spdx_license":"MIT","steward_signoff":"victim-services-steward","tags":["status:verified","domain:nonprofit_ops","track:victim-support-referrals","kind:full_kit","spdx:MIT","cohort:nonprofit_ops"],"target_cohorts":["all","nonprofit_ops"],"verification":{"checks_run":["track_alignment","human_only_boundaries","synthetic_fixtures","non_accusatory_copy","prohibited_topics","spdx_license_allowlist","cited_sources","deliverable_alignment"],"fixture_count":3,"human_only_steps":["support-conversation","safety-planning","make-referral"],"issues":[],"kit_id":"KIT-SUPPORT-08","passed":true},"visibility_scope":"public_commons"},{"allowed_surfaces":["surface:eranos","surface:herma"],"blob_sha256":"70ef9ebe3a9cd06595343d664d8efeab20810add4159deac186102bd30c1c606","catalog_version":1,"draft_receipt":"c841e4dc3d8a8d7920043489d05e0f650cd1f3c036ac08e15032e81f7bef19d1","draft_sha256":"70ef9ebe3a9cd06595343d664d8efeab20810add4159deac186102bd30c1c606","draft_task_id":"er_79d9d1cb5437:KIT-THANKS-13:draft","drafter_key_id":"k_12323a7b4649","kit":{"allowed_surfaces":["surface:eranos","surface:herma"],"artifacts":[{"artifact_format":"csv_template","boundary":"drafts","name":"coded_gift_list","spec":{"columns":["gift_code","gift_date","amount","currency","program","anonymous_choice","mail_choice","listing_choice","goods_or_services_value"],"pii_allowed":false},"summary":"Gift rows by code with date, amount, program, privacy choices and the value of any goods given in return. Names and addresses stay in the donor system.","title":"Coded Gift List"},{"artifact_format":"markdown_sop","boundary":"drafts","name":"thank_you_letter_template","spec":["Dear {{greeting_name}},","Thank you for your gift of {{amount}} on {{gift_date}} to {{program}}.","One specific sentence about what the program did this year.","The acknowledgment wording supplied by the finance lead, word for word.","Signed by hand by staff."],"summary":"Letter template with merge fields for the donor's name and address, and a place for the finance lead's acknowledgment wording.","title":"Thank-You Letter Template"}],"checklist":["Names and addresses stay in the organization's own donor system and enter letters only through its mail merge at signing time.","Every gift row has its anonymous, mail and listing choices before drafting.","The finance lead's acknowledgment wording appears word for word in every letter.","Staff sign and send every letter themselves."],"deliverable_kind":"full_kit","domain":"nonprofit_ops","drafted_by":"dedicated-worker-2","drafted_by_key":"k_12323a7b4649","fixtures":[{"expected_human_escalation":false,"expected_indicators":["letters_drafted_with_merge_fields","anonymous_rows_kept_off_lists"],"id":"FX-THANKS-ROUTINE","sample_input":"SYNTHETIC: 48 gift rows dated 2026-12-01 to 2026-12-31, amounts from USD 25 to USD 1,000, every row with anonymous, mail and listing choices; 3 rows marked anonymous.","scenario":"Year-end gifts with every privacy choice recorded"},{"expected_human_escalation":true,"expected_indicators":["row_held_for_development_lead","goods_or_services_wording_needed"],"id":"FX-THANKS-HOLD","sample_input":"SYNTHETIC: Gift code G-31 has no mail choice recorded; gift code G-44 of USD 300 included a dinner ticket valued at USD 80.","scenario":"A gift row with a missing mail choice and a gift that included a dinner ticket"}],"kit_id":"KIT-THANKS-13","producer_surface":"surface:eranos","skill":null,"skills":[{"boundary":"drafts","description":"Drafts personal thank-you letters from a coded gift list, keeping names and addresses as merge fields.","instructions":"Draft one letter per cleared gift row from the approved template. Keep names and addresses as merge fields that the organization's own mail merge fills at signing time, so no letter can carry another donor's details. Include the gift date, the amount and the acknowledgment wording the finance lead supplied, word for word. Add one specific sentence about the program the gift supports from the program notes. Skip any row the privacy check held or that is marked no mail, and list its code. Do not add tax advice.","name":"donor-letter-drafter","refuses":["Putting one donor's details in another donor's letter or in a shared list","Writing tax advice or changing the acknowledgment wording","Sending letters or messaging donors","Overriding a donor's privacy choice"]},{"boundary":"drafts","description":"Checks a coded gift list for missing privacy choices and rows that must not get a letter or a public listing.","instructions":"Check that every row has an anonymous choice, a mail choice and a listing choice. Hold rows with a missing choice for the development lead, and rows with goods or services given in return for the finance lead. Mark anonymous donors so their names stay out of any public list or annual report draft. Report gift codes and counts by choice, never names.","name":"gift-list-privacy-checker","refuses":["Guessing a missing privacy choice","Listing an anonymous donor in any public list","Reading or storing names and addresses"]}],"sources":[{"checked_date":"2026-10-30","title":"IRS: Charitable contributions, written acknowledgments","url":"https://www.irs.gov/charities-non-profits/charitable-organizations/charitable-contributions-written-acknowledgments"},{"checked_date":"2026-10-30","title":"Association of Fundraising Professionals: The Donor Bill of Rights","url":"https://afpglobal.org/donor-bill-rights"}],"spdx_license":"MIT","steps":[{"actor":"Privacy check agent","boundary":"drafts","guidance":"Before drafting, check each coded gift row for its anonymous, mail and listing choices, and hold any row with a missing choice for the development lead.","id":"check-privacy-choices","kind":"privacy_check","title":"Check the gift list against donors' privacy choices"},{"actor":"Letter drafting agent","boundary":"drafts","guidance":"Draft one letter per cleared gift from the approved template with the gift date and amount, the finance lead's acknowledgment wording and a specific line about the program it supports. Names and addresses stay as merge fields.","id":"draft-letters","kind":"document_prep","title":"Draft a thank-you letter for each gift"},{"actor":"Development lead","boundary":"human_only","guidance":"The development lead decides personal calls, recognition, anonymity questions and any donor with a missing privacy choice. The agent only lists them.","id":"decide-special-handling","kind":"individual_decision","title":"Decide special handling for donors"},{"actor":"Finance lead","boundary":"human_only","guidance":"The finance lead confirms the receipt wording, including any statement about goods or services given in return, against the organization's own rules and the IRS written acknowledgment requirements.","id":"confirm-acknowledgment-wording","kind":"finance_signoff","title":"Confirm the gift acknowledgment wording"},{"actor":"Executive director or development lead","boundary":"human_only","guidance":"Staff sign and send letters from the organization's own mail or email. The agent never sends letters or messages donors.","id":"sign-and-send","kind":"external_send","title":"Sign and send each letter"}],"summary":"Drafts thank-you letters from a coded gift list with the acknowledgment details the finance lead requires, and checks that no letter exposes another donor's details or ignores a privacy choice. Staff decide special handling and sign and send every letter.","tags":["status:verified","domain:nonprofit_ops","track:donor-stewardship-and-privacy","kind:full_kit","spdx:MIT","cohort:nonprofit_ops"],"target_cohorts":["all","nonprofit_ops"],"target_org":"Small nonprofit thanking individual donors after a year-end appeal","title":"Donor Thank-You Letters with Privacy Checks Kit","tool":null,"tools":[{"description":"Lists gift rows with missing privacy choices, rows marked no mail or anonymous, and rows with goods or services given in return.","input_schema":{"properties":{"batch_label":{"type":"string"},"gift_rows":{"items":{"type":"object"},"type":"array"}},"required":["gift_rows"],"type":"object"},"name":"check_gift_list_privacy","output_fields":["missing_choices","no_mail_rows","anonymous_rows","goods_or_services_rows","rows_ready"],"read_only":true}],"track_id":"donor-stewardship-and-privacy","visibility_scope":"public_commons"},"producer_surface":"surface:eranos","publication_sha256":"604aae0dd144123e7fc48c15ad4164f241517d59ddbc084992bbace1a6596c66","review_notes":"Checked placeholders instead of names, held rows with missing privacy choices, word-for-word acknowledgment wording, and that special handling, wording and sending stay with staff.","review_receipt":"aaa54d5ee5126df936f3e176ddf9840181aa7b60da5a4508686035a5162ac89f","review_task_id":"er_79d9d1cb5437:KIT-THANKS-13:review","reviewed_by":"dedicated-worker-3","reviewed_by_key":"k_e0d4b7c47dd4","reviewer_key_id":"k_e0d4b7c47dd4","spdx_license":"MIT","steward_signoff":null,"tags":["status:verified","domain:nonprofit_ops","track:donor-stewardship-and-privacy","kind:full_kit","spdx:MIT","cohort:nonprofit_ops"],"target_cohorts":["all","nonprofit_ops"],"verification":{"checks_run":["track_alignment","human_only_boundaries","synthetic_fixtures","non_accusatory_copy","prohibited_topics","spdx_license_allowlist","cited_sources","deliverable_alignment"],"fixture_count":2,"human_only_steps":["decide-special-handling","confirm-acknowledgment-wording","sign-and-send"],"issues":[],"kit_id":"KIT-THANKS-13","passed":true},"visibility_scope":"public_commons"},{"allowed_surfaces":["surface:eranos","surface:herma"],"blob_sha256":"b78770da1d83d7872247c3eefea4b393028ae5c59b17289a04b60a5377137731","catalog_version":1,"draft_receipt":"2b315feb8804f4f15cb0b70abccf4602938fdc2683f1a963942af4c48635bdd7","draft_sha256":"b78770da1d83d7872247c3eefea4b393028ae5c59b17289a04b60a5377137731","draft_task_id":"er_be9e464b4203:KIT-TRANSCR-07:draft","drafter_key_id":"k_12323a7b4649","kit":{"allowed_surfaces":["surface:eranos","surface:herma"],"artifacts":[{"artifact_format":"markdown_sop","boundary":"drafts","name":"transcription_rules","spec":["Type exactly what is written: spelling, slang, grammar and acronyms stay as they are.","Write a crossed-out word as [crossed out: word].","Mark an unsure word with [?] and list alternatives; mark an unreadable word [illegible].","A person checks every flag against the original page before anyone uses the text."],"summary":"The rules every transcription follows: type exactly what is written, flag what is uncertain, and leave the writer's words alone.","title":"Verbatim Transcription Rules"},{"artifact_format":"csv_template","boundary":"drafts","name":"transcription_sheet","spec":{"columns":["batch_label","page","line","text_as_written","has_flag","alternatives","reviewer_checked"],"pii_allowed":false},"summary":"One row per written line: the batch, page, line, the text as written, whether it holds a flag, the alternatives and whether a reviewer checked it.","title":"Transcription Sheet"},{"artifact_format":"csv_template","boundary":"assists","name":"local_acronym_glossary","spec":{"columns":["term","meaning","kind"],"pii_allowed":false,"rows":[["SNAP","Supplemental Nutrition Assistance Program","public program"],["WIC","Special Supplemental Nutrition Program for Women, Infants, and Children","public program"],["ESL","English as a second language","class"],["GED","General Educational Development, a high school equivalency test","class"],["TMC","Tuesday Market Center (a SYNTHETIC local term used only in this kit's examples)","local term"],["NEC","Northside Elders Club (a SYNTHETIC local term used only in this kit's examples)","local term"],["w/","with","writing abbreviation"],["bc","because","writing abbreviation"],["rn","right now","writing abbreviation"]],"rule":"The glossary helps readers. It never changes a transcription."},"summary":"Acronyms, local terms and common writing abbreviations with their meanings, as a reading aid that never changes a transcription.","title":"Local Acronym Glossary"}],"checklist":["Only synthetic or consented pages go in the drop folder; this kit's samples are synthetic, rendered from handwriting fonts and stamped SYNTHETIC.","A person checks every [?] and [illegible] flag against the original page.","Nobody corrects the writer's spelling, slang or wording in the transcription.","Trained staff follow up the same day on any statement about safety.","The program lead signs off before any statement is used or shared."],"deliverable_kind":"full_kit","domain":"nonprofit_ops","drafted_by":"dedicated-worker-2","drafted_by_key":"k_12323a7b4649","fixtures":[{"expected_human_escalation":false,"expected_indicators":["slang_kept_as_written","crossed_out_word_marked","smudged_reading_flagged","acronyms_listed_not_expanded"],"id":"FX-TRANSCR-VERBATIM","sample_input":"SYNTHETIC: Page statement-01.png, rendered from the Patrick Hand font and stamped SYNTHETIC: a nine-line statement with slang (no cap, r, n, aint, tho), the acronyms TMC and SNAP, the crossed-out word mondays and one smudged reading.","scenario":"A handwritten statement with slang, acronyms, a crossed-out word and a smudged reading"},{"expected_human_escalation":false,"expected_indicators":["spanish_word_kept","acronyms_listed_not_expanded","smudged_reading_flagged"],"id":"FX-TRANSCR-CARD","sample_input":"SYNTHETIC: Page signup-card-01.png, rendered from the Gochi Hand font and stamped SYNTHETIC: a sign-up card with the acronyms ESL, GED, WIC and NEC, the Spanish word abuela and one smudged word.","scenario":"A handwritten sign-up card with acronyms, a Spanish word and a smudged word"},{"expected_human_escalation":true,"expected_indicators":["transcribed_as_written","route_to_trained_staff_now","sharing_held_for_consent"],"id":"FX-TRANSCR-SAFETY","sample_input":"SYNTHETIC: Page statement-02.png, rendered from the Gochi Hand font and stamped SYNTHETIC: a statement that says the writer does not feel safe at home and asks that it not be shared.","scenario":"A statement that says the writer does not feel safe at home"},{"expected_human_escalation":true,"expected_indicators":["refuse_to_correct_the_writer","route_to_reviewer"],"id":"FX-TRANSCR-CORRECT","sample_input":"SYNTHETIC: A volunteer asks the agent to fix the spelling and grammar of the statement-01.png transcription before it is filed.","scenario":"A volunteer asks the agent to fix the spelling and grammar before filing"}],"kit_id":"KIT-TRANSCR-07","producer_surface":"surface:eranos","skill":null,"skills":[{"boundary":"drafts","description":"Types handwritten pages exactly as written and flags every uncertain reading for a person.","instructions":"Type what is on the page, line by line, exactly as written: keep the writer's spelling, slang, grammar, capital letters, abbreviations, acronyms and punctuation, and write a crossed-out word as [crossed out: word]. Never correct, tidy, translate, summarize or expand anything. When you are not sure of a word, write your best reading followed by [?] and list the alternatives; when you cannot read it at all, write [illegible]. Keep the page and line number for every flag. Never add a name, date or detail that is not on the page. If a page mentions danger or not feeling safe, keep typing it as written and mark the page for trained staff now.","name":"verbatim-transcriber","refuses":["Correcting spelling, grammar or slang","Summarizing or rewording a statement","Expanding acronyms inside the transcription","Guessing a word without flagging it"]},{"boundary":"assists","description":"Lists acronyms and local terms in a transcription with their glossary meanings, without changing the text.","instructions":"Find acronyms, abbreviations and local terms in the transcription. Give the glossary's meaning, word for word, when the glossary has the term, and list unknown terms for the reviewer to add or explain. Never replace, expand or translate a term inside the transcription; the glossary is a reading aid only.","name":"acronym-glossary-assistant","refuses":["Changing the transcription","Guessing the meaning of an unknown local term"]}],"sources":[{"checked_date":"2026-10-30","title":"National Archives: Citizen Archivist resources for transcribing records","url":"https://www.archives.gov/citizen-archivist/resources"}],"spdx_license":"MIT","steps":[{"actor":"Transcription drafting agent","boundary":"drafts","guidance":"Type each line as written, keeping spelling, slang, grammar, acronyms, crossings-out and line breaks. Mark every unsure reading with [?], mark unreadable words [illegible], and never correct or tidy the writer's words.","id":"transcribe-pages","kind":"transcription","title":"Type each page exactly as written"},{"actor":"Glossary assistant agent","boundary":"assists","guidance":"List every acronym or local term found, with its glossary meaning when the glossary has one; unknown ones go to the reviewer. The glossary never changes the transcription.","id":"list-acronyms","kind":"glossary_check","title":"List acronyms and local terms against the glossary"},{"actor":"Trained staff reviewer","boundary":"human_only","guidance":"A person compares every flag and a sample of other lines with the original page, fixes misreadings only, and keeps the writer's own words, spelling and slang.","id":"verify-readings","kind":"transcription_review","title":"Check every flagged reading against the original page"},{"actor":"Trained staff member","boundary":"human_only","guidance":"When a statement mentions danger or not feeling safe, trained staff follow up under the organization's own safety protocol. The agent gives no advice and takes no other step.","id":"safety-follow-up","kind":"crisis_safety_plan","title":"Follow up in person when a statement raises safety"},{"actor":"Program lead (steward)","boundary":"human_only","guidance":"The program lead signs off each transcription and decides how the statement is used, under the organization's consent and records rules.","id":"sign-off-statement","kind":"individual_decision","title":"Sign off the transcription and decide how it is used"},{"actor":"Program lead","boundary":"human_only","guidance":"Only staff share a statement outside the organization, and only with the writer's consent. The agent never shares or sends anything.","id":"share-statement","kind":"external_send","title":"Share a statement outside the organization"}],"summary":"Types handwritten statements and forms dropped into a folder exactly as written, keeping slang, spelling, acronyms and the writer's own words, and flags every uncertain reading for a person. A local acronym glossary helps readers but never changes the text, and a person checks every flag and signs off.","tags":["status:verified","domain:nonprofit_ops","track:statement-transcription","kind:full_kit","spdx:MIT","cohort:nonprofit_ops"],"target_cohorts":["all","nonprofit_ops"],"target_org":"Community center that collects handwritten statements and sign-up cards at community nights","title":"Handwritten Statements to Text Kit","tool":null,"tools":[{"description":"Lists the page images in the intake drop folder with page numbers, sizes and SHA-256 digests, without moving or changing them.","input_schema":{"properties":{"batch_label":{"type":"string"},"folder":{"type":"string"}},"required":["folder"],"type":"object"},"name":"list_dropped_pages","output_fields":["pages","file_sha256","page_count","unreadable_files"],"read_only":true}],"track_id":"statement-transcription","visibility_scope":"public_commons"},"producer_surface":"surface:eranos","publication_sha256":"5daf4fad508b7a641a021b873998dbebb84beb0d411724ac4b6e698e2ae2459a","review_notes":"Checked the verbatim rules against the rendered synthetic pages, flags for smudged and crossed-out words, a glossary that never changes the text, and that review, safety follow-up, sign-off and sharing stay with people.","review_receipt":"0638f82fcbd076e9b0deabca808ae8cc88f53be66b266df0b24e1ff468cbe36f","review_task_id":"er_be9e464b4203:KIT-TRANSCR-07:review","reviewed_by":"dedicated-worker-3","reviewed_by_key":"k_e0d4b7c47dd4","reviewer_key_id":"k_e0d4b7c47dd4","spdx_license":"MIT","steward_signoff":"records-steward-lead","tags":["status:verified","domain:nonprofit_ops","track:statement-transcription","kind:full_kit","spdx:MIT","cohort:nonprofit_ops"],"target_cohorts":["all","nonprofit_ops"],"verification":{"checks_run":["track_alignment","human_only_boundaries","synthetic_fixtures","non_accusatory_copy","prohibited_topics","spdx_license_allowlist","cited_sources","deliverable_alignment"],"fixture_count":4,"human_only_steps":["verify-readings","safety-follow-up","sign-off-statement","share-statement"],"issues":[],"kit_id":"KIT-TRANSCR-07","passed":true},"visibility_scope":"public_commons"},{"allowed_surfaces":["surface:eranos","surface:herma"],"blob_sha256":"fea6a7a826e0dc2b3be4b37f663aa61eb8f6bed6c10b1917a13b1a6e5a8e6ede","catalog_version":1,"draft_receipt":null,"draft_sha256":"fea6a7a826e0dc2b3be4b37f663aa61eb8f6bed6c10b1917a13b1a6e5a8e6ede","draft_task_id":"t_51b21f43cd5346d89cdf878ed83c4973","drafter_key_id":"k_12323a7b4649","kit":{"allowed_surfaces":["surface:eranos","surface:herma"],"artifacts":[{"artifact_format":"rule_pack","boundary":"drafts","name":"process_steps","spec":["profile_columns: Find which columns hold names, emails, phone numbers, dates and numeric measures so later steps know what to check.","normalize_dates: Write every date as YYYY-MM-DD; dates that could be read two ways are flagged for a person.","normalize_phones: Write every phone number with a plus sign and country code; numbers it cannot read are flagged.","write_report: Write a short report with the counts and the rows a person should check."],"summary":"The steps the runner follows, in order, with configurable parameters in process.json.","title":"Process Steps"},{"artifact_format":"csv_template","boundary":"drafts","name":"flags_sheet","spec":{"columns":["file","row","column","issue","original","cleaned","needs_person","note"],"stays_local":true},"summary":"One row per change or question: file, row, column, issue, original and cleaned value, and needs_person.","title":"Flags Sheet"},{"artifact_format":"markdown_sop","boundary":"drafts","name":"launch_steps","spec":["Docker: ./launch.sh /path/to/your/sheets (or DATA_DIR=/path/to/your/sheets docker compose run --rm run).","Python 3.10+: python3 run_process.py --input /path/to/your/sheets --output results.","Verify first on sample files (no real data): docker compose run --rm test.","Open results/report.md and decide every row in results/flags.csv marked needs_person = yes."],"summary":"Step-by-step operating procedure for running the local process and reviewing counts-only reports.","title":"Report and Launch SOP"}],"checklist":["A person checks every row in flags.csv marked needs_person = yes before any output table or report is used.","Missing figures stay blank rather than guessed, and possible duplicates or conflicting values are decided by a person.","Nobody is contacted and no report is shared externally unless a designated person approves and sends it through the organization's own channels.","The original spreadsheets stay where they are and are never modified; only the separate results folder is written."],"deliverable_kind":"full_kit","domain":"nonprofit_ops","drafted_by":"k_12323a7b4649","drafted_by_key":"k_12323a7b4649","fixtures":[{"expected_human_escalation":false,"expected_indicators":["counts_only_report_written","inputs_unchanged"],"id":"FX-PROC-ROUTINE","sample_input":"Practice case: an example, not a real person or case. Four local sample files with formatted rows, targets and contact columns.","scenario":"Routine local table check for assembling monthly program impact numbers"},{"expected_human_escalation":true,"expected_indicators":["missing_fields_flagged","blanks_left_unguessed"],"id":"FX-PROC-MISSING-DATA","sample_input":"Practice case: an example, not a real person or case. Rows with blank measure cells, ambiguous numeric dates, and missing contact fields.","scenario":"Missing figures and ambiguous dates left unguessed for staff review"},{"expected_human_escalation":true,"expected_indicators":["needs_person_flagged","no_outward_contact"],"id":"FX-PROC-HUMAN-GATE","sample_input":"Practice case: an example, not a real person or case. Two rows sharing a name with conflicting details and a pending verification gate.","scenario":"Conflicting duplicate or unconfirmed consent gate routed to a person"}],"kit_id":"PRC-31C684-01","producer_surface":"surface:eranos","skill":null,"skills":[{"boundary":"drafts","description":"Use when a coordinator asks for assembling monthly program impact numbers on CSV or TSV files in a local folder; reads input files without modifying them and writes flags.csv plus a counts-only report.","instructions":"Run the local process on the folder the person names, putting outputs in a separate results folder. Read report.md and flags.csv when it finishes, explain rows marked needs_person = yes in plain words, leave original files untouched, never guess missing numbers, and never contact anyone or send files anywhere.","name":"impact-report-runner","refuses":["Changing, moving or deleting the original files","Guessing missing numbers or deciding conflicting rows","Reaching out to participants, volunteers, donors or partners","Sending the files or the results anywhere"]}],"sources":[{"checked_date":"2026-10-31","title":"ISO 8601: Date and time format","url":"https://www.iso.org/iso-8601-date-and-time-format.html"},{"checked_date":"2026-10-31","title":"ITU-T Recommendation E.164: The international public telecommunication numbering plan","url":"https://www.itu.int/rec/T-REC-E.164/en"},{"checked_date":"2026-10-31","title":"RFC 2606: Reserved Top Level DNS Names (example.org for sample addresses)","url":"https://www.rfc-editor.org/rfc/rfc2606"}],"spdx_license":"MIT","steps":[{"actor":"The organization's own agent or a staff member","boundary":"drafts","guidance":"Run the tested process on the local folder of exports. It reads the files without changing them and writes cleaned copies, flags.csv and a counts-only report to a separate results folder.","id":"run-cleaning-process","kind":"sheet_cleaning","title":"Run the local process on the exported sheets"},{"actor":"Program or operations coordinator","boundary":"human_only","guidance":"A person checks every row marked needs_person in flags.csv, including possible duplicates, conflicting values, unreadable formats, and missing figures, using the original records.","id":"review-flags","kind":"individual_decision","title":"Decide every flagged row and missing figure"},{"actor":"Program director or coordinator","boundary":"human_only","guidance":"A person decides whether any follow-up or outward distribution is needed through the organization's own channels, and nothing is sent by the agent.","id":"approve-follow-up-gate","kind":"external_send","title":"Decide whether any outward follow-up is needed"}],"summary":"A reusable local tabular process for assembling monthly program impact numbers: it puts dates in one format, and writes a counts-only report. It runs on the organization's own computer or cloud account so files never leave it, and a person decides every flagged row or missing figure.","tags":["domain:nonprofit_ops","track:program-impact-reporting","kind:process_package","reuse:proc2-31c68489367c2f9f","package:process-impact-report-31c684","spdx:MIT","cohort:nonprofit_ops","request:rq-r_b8791504272e4f959cef3eab33576015-mvy79tih"],"target_cohorts":["all","nonprofit_ops"],"target_org":"Community nonprofit preparing recurring program impact reports from local spreadsheets","title":"Monthly program impact reporting process","tool":null,"tools":[{"description":"Lists each column of the local spreadsheet exports with its detected role and fill counts, without changing any file.","input_schema":{"properties":{"folder":{"description":"folder with .csv or .tsv files","type":"string"}},"required":["folder"],"type":"object"},"name":"profile_sheet_columns","output_fields":["files","columns","roles","filled","empty"],"read_only":true}],"track_id":"program-impact-reporting","visibility_scope":"public_commons"},"producer_surface":"surface:eranos","publication_sha256":"5db52ae7c5d126a4d25095f4058456729c29a852056675dd9a187998c976f1ea","review_notes":"Re-ran the package's tests in an isolated container and matched its SHA-256; flags stay with people.","review_receipt":"1e3d04270b49d0decae147c2b955046c2270e3aa00a71634908e3c17e14d81ef","review_task_id":"t_d6176eb96fc4477babda3eccab54f577","reviewed_by":"k_e0d4b7c47dd4","reviewed_by_key":"k_e0d4b7c47dd4","reviewer_key_id":"k_e0d4b7c47dd4","spdx_license":"MIT","steward_signoff":null,"tags":["domain:nonprofit_ops","track:program-impact-reporting","kind:process_package","reuse:proc2-31c68489367c2f9f","package:process-impact-report-31c684","spdx:MIT","cohort:nonprofit_ops","request:rq-r_b8791504272e4f959cef3eab33576015-mvy79tih","status:verified"],"target_cohorts":["all","nonprofit_ops"],"verification":{"checks_run":["track_alignment","human_only_boundaries","practice_test_cases","non_accusatory_copy","prohibited_topics","spdx_license_allowlist","cited_sources","deliverable_alignment"],"fixture_count":3,"human_only_steps":["review-flags","approve-follow-up-gate"],"issues":[],"kit_id":"PRC-31C684-01","passed":true},"visibility_scope":"public_commons"},{"allowed_surfaces":["surface:eranos","surface:herma"],"blob_sha256":"7e42740a9200d8d0f661171296b817ed789386eb2afa4dc5b027f40329f69749","catalog_version":1,"draft_receipt":null,"draft_sha256":"7e42740a9200d8d0f661171296b817ed789386eb2afa4dc5b027f40329f69749","draft_task_id":"t_410c5fdfd3174a698baef609004a006c","drafter_key_id":"k_12323a7b4649","kit":{"allowed_surfaces":["surface:eranos","surface:herma"],"artifacts":[{"artifact_format":"rule_pack","boundary":"drafts","name":"process_steps","spec":["profile_columns: Find which columns hold names, emails, phone numbers, dates and numeric measures so later steps know what to check.","normalize_dates: Write every date as YYYY-MM-DD; dates that could be read two ways are flagged for a person.","normalize_phones: Write every phone number with a plus sign and country code; numbers it cannot read are flagged.","write_report: Write a short report with the counts and the rows a person should check."],"summary":"The steps the runner follows, in order, with configurable parameters in process.json.","title":"Process Steps"},{"artifact_format":"csv_template","boundary":"drafts","name":"flags_sheet","spec":{"columns":["file","row","column","issue","original","cleaned","needs_person","note"],"stays_local":true},"summary":"One row per change or question: file, row, column, issue, original and cleaned value, and needs_person.","title":"Flags Sheet"},{"artifact_format":"markdown_sop","boundary":"drafts","name":"launch_steps","spec":["Docker: ./launch.sh /path/to/your/sheets (or DATA_DIR=/path/to/your/sheets docker compose run --rm run).","Python 3.10+: python3 run_process.py --input /path/to/your/sheets --output results.","Verify first on sample files (no real data): docker compose run --rm test.","Open results/report.md and decide every row in results/flags.csv marked needs_person = yes."],"summary":"Step-by-step operating procedure for running the local process and reviewing counts-only reports.","title":"Report and Launch SOP"}],"checklist":["A person checks every row in flags.csv marked needs_person = yes before any output table or report is used.","Missing figures stay blank rather than guessed, and possible duplicates or conflicting values are decided by a person.","Nobody is contacted and no report is shared externally unless a designated person approves and sends it through the organization's own channels.","The original spreadsheets stay where they are and are never modified; only the separate results folder is written."],"deliverable_kind":"full_kit","domain":"nonprofit_ops","drafted_by":"k_12323a7b4649","drafted_by_key":"k_12323a7b4649","fixtures":[{"expected_human_escalation":false,"expected_indicators":["counts_only_report_written","inputs_unchanged"],"id":"FX-PROC-ROUTINE","sample_input":"Practice case: an example, not a real person or case. Four local sample files with formatted rows, targets and contact columns.","scenario":"Routine local table check for checking translated notice tables for missing fields and number parity"},{"expected_human_escalation":true,"expected_indicators":["missing_fields_flagged","blanks_left_unguessed"],"id":"FX-PROC-MISSING-DATA","sample_input":"Practice case: an example, not a real person or case. Rows with blank measure cells, ambiguous numeric dates, and missing contact fields.","scenario":"Missing figures and ambiguous dates left unguessed for staff review"},{"expected_human_escalation":true,"expected_indicators":["needs_person_flagged","no_outward_contact"],"id":"FX-PROC-HUMAN-GATE","sample_input":"Practice case: an example, not a real person or case. Two rows sharing a name with conflicting details and a pending verification gate.","scenario":"Conflicting duplicate or unconfirmed consent gate routed to a person"}],"kit_id":"PRC-8080B1-01","producer_surface":"surface:eranos","skill":null,"skills":[{"boundary":"drafts","description":"Use when a coordinator asks for checking translated notice tables for missing fields and number parity on CSV or TSV files in a local folder; reads input files without modifying them and writes flags.csv plus a counts-only report.","instructions":"Run the local process on the folder the person names, putting outputs in a separate results folder. Read report.md and flags.csv when it finishes, explain rows marked needs_person = yes in plain words, leave original files untouched, never guess missing numbers, and never contact anyone or send files anywhere.","name":"comms-parity-runner","refuses":["Changing, moving or deleting the original files","Guessing missing numbers or deciding conflicting rows","Reaching out to participants, volunteers, donors or partners","Sending the files or the results anywhere"]}],"sources":[{"checked_date":"2026-10-31","title":"ISO 8601: Date and time format","url":"https://www.iso.org/iso-8601-date-and-time-format.html"},{"checked_date":"2026-10-31","title":"ITU-T Recommendation E.164: The international public telecommunication numbering plan","url":"https://www.itu.int/rec/T-REC-E.164/en"},{"checked_date":"2026-10-31","title":"RFC 2606: Reserved Top Level DNS Names (example.org for sample addresses)","url":"https://www.rfc-editor.org/rfc/rfc2606"}],"spdx_license":"MIT","steps":[{"actor":"The organization's own agent or a staff member","boundary":"drafts","guidance":"Run the tested process on the local folder of exports. It reads the files without changing them and writes cleaned copies, flags.csv and a counts-only report to a separate results folder.","id":"run-cleaning-process","kind":"sheet_cleaning","title":"Run the local process on the exported sheets"},{"actor":"Program director or coordinator","boundary":"human_only","guidance":"A person decides whether any follow-up or outward distribution is needed through the organization's own channels, and nothing is sent by the agent.","id":"approve-follow-up-gate","kind":"external_send","title":"Decide whether any outward follow-up is needed"}],"summary":"A reusable local tabular process for checking translated notice tables for missing fields and number parity: it puts dates in one format and puts phone numbers in one format, and writes a counts-only report. It runs on the organization's own computer or cloud account so files never leave it, and a person decides every flagged row or missing figure.","tags":["domain:nonprofit_ops","track:accessible-and-multilingual-communications","kind:process_package","reuse:proc2-8080b1165b35830a","package:process-comms-parity-8080b1","spdx:MIT","cohort:nonprofit_ops","request:rq-r_13d2406514f94d38b8e06b4ad9d4473e-mvy7529d"],"target_cohorts":["all","nonprofit_ops"],"target_org":"Community organization publishing service notices across multiple languages","title":"Multilingual notice parity check process","tool":null,"tools":[{"description":"Lists each column of the local spreadsheet exports with its detected role and fill counts, without changing any file.","input_schema":{"properties":{"folder":{"description":"folder with .csv or .tsv files","type":"string"}},"required":["folder"],"type":"object"},"name":"profile_sheet_columns","output_fields":["files","columns","roles","filled","empty"],"read_only":true}],"track_id":"accessible-and-multilingual-communications","visibility_scope":"public_commons"},"producer_surface":"surface:eranos","publication_sha256":"927c6082d768b262b5c13afd3a78a1811da215f07c6562aa5ab64f28934c6f85","review_notes":"Re-ran the package's tests in an isolated container and matched its SHA-256; flags stay with people.","review_receipt":"f8756e3f609cfe19a7800c7e314765745019f09fe44d9b14615e0ee38a876573","review_task_id":"t_312077dbc85c4c2baae25d29e0c56853","reviewed_by":"k_e0d4b7c47dd4","reviewed_by_key":"k_e0d4b7c47dd4","reviewer_key_id":"k_e0d4b7c47dd4","spdx_license":"MIT","steward_signoff":null,"tags":["domain:nonprofit_ops","track:accessible-and-multilingual-communications","kind:process_package","reuse:proc2-8080b1165b35830a","package:process-comms-parity-8080b1","spdx:MIT","cohort:nonprofit_ops","request:rq-r_13d2406514f94d38b8e06b4ad9d4473e-mvy7529d","status:verified"],"target_cohorts":["all","nonprofit_ops"],"verification":{"checks_run":["track_alignment","human_only_boundaries","practice_test_cases","non_accusatory_copy","prohibited_topics","spdx_license_allowlist","cited_sources","deliverable_alignment"],"fixture_count":3,"human_only_steps":["approve-follow-up-gate"],"issues":[],"kit_id":"PRC-8080B1-01","passed":true},"visibility_scope":"public_commons"},{"allowed_surfaces":["surface:eranos","surface:herma"],"blob_sha256":"1686b4475770e7d267a6235ce0f94cc06fb192ffd38a173469d9b60b32d27bbd","catalog_version":1,"draft_receipt":null,"draft_sha256":"1686b4475770e7d267a6235ce0f94cc06fb192ffd38a173469d9b60b32d27bbd","draft_task_id":"t_84feb58e46f94c01a9556fd0557c04de","drafter_key_id":"k_12323a7b4649","kit":{"allowed_surfaces":["surface:eranos","surface:herma"],"artifacts":[{"artifact_format":"rule_pack","boundary":"drafts","name":"process_steps","spec":["profile_columns: Find which columns hold names, emails, phone numbers, dates and numeric measures so later steps know what to check.","normalize_dates: Write every date as YYYY-MM-DD; dates that could be read two ways are flagged for a person.","normalize_phones: Write every phone number with a plus sign and country code; numbers it cannot read are flagged.","flag_missing_fields: Flag every row with missing required values or blank contact details so gaps stay visible instead of guessed.","check_thresholds_and_parity: Flag every row where a verification gate, consent marker, capacity check or deadline requires a person's review.","write_report: Write a short report with the counts and the rows a person should check."],"summary":"The steps the runner follows, in order, with configurable parameters in process.json.","title":"Process Steps"},{"artifact_format":"csv_template","boundary":"drafts","name":"flags_sheet","spec":{"columns":["file","row","column","issue","original","cleaned","needs_person","note"],"stays_local":true},"summary":"One row per change or question: file, row, column, issue, original and cleaned value, and needs_person.","title":"Flags Sheet"},{"artifact_format":"markdown_sop","boundary":"drafts","name":"launch_steps","spec":["Docker: ./launch.sh /path/to/your/sheets (or DATA_DIR=/path/to/your/sheets docker compose run --rm run).","Python 3.10+: python3 run_process.py --input /path/to/your/sheets --output results.","Verify first on sample files (no real data): docker compose run --rm test.","Open results/report.md and decide every row in results/flags.csv marked needs_person = yes."],"summary":"Step-by-step operating procedure for running the local process and reviewing counts-only reports.","title":"Report and Launch SOP"}],"checklist":["A person checks every row in flags.csv marked needs_person = yes before any output table or report is used.","Missing figures stay blank rather than guessed, and possible duplicates or conflicting values are decided by a person.","Nobody is contacted and no report is shared externally unless a designated person approves and sends it through the organization's own channels.","The original spreadsheets stay where they are and are never modified; only the separate results folder is written."],"deliverable_kind":"full_kit","domain":"nonprofit_ops","drafted_by":"k_12323a7b4649","drafted_by_key":"k_12323a7b4649","fixtures":[{"expected_human_escalation":false,"expected_indicators":["counts_only_report_written","inputs_unchanged"],"id":"FX-PROC-ROUTINE","sample_input":"Practice case: an example, not a real person or case. Four local sample files with formatted rows, targets and contact columns.","scenario":"Routine local table check for checking public rule and effective-date tables for missing citations"},{"expected_human_escalation":true,"expected_indicators":["missing_fields_flagged","blanks_left_unguessed"],"id":"FX-PROC-MISSING-DATA","sample_input":"Practice case: an example, not a real person or case. Rows with blank measure cells, ambiguous numeric dates, and missing contact fields.","scenario":"Missing figures and ambiguous dates left unguessed for staff review"},{"expected_human_escalation":true,"expected_indicators":["needs_person_flagged","no_outward_contact"],"id":"FX-PROC-HUMAN-GATE","sample_input":"Practice case: an example, not a real person or case. Two rows sharing a name with conflicting details and a pending verification gate.","scenario":"Conflicting duplicate or unconfirmed consent gate routed to a person"}],"kit_id":"PRC-A92A38-01","producer_surface":"surface:eranos","skill":null,"skills":[{"boundary":"drafts","description":"Use when a coordinator asks for checking public rule and effective-date tables for missing citations on CSV or TSV files in a local folder; reads input files without modifying them and writes flags.csv plus a counts-only report.","instructions":"Run the local process on the folder the person names, putting outputs in a separate results folder. Read report.md and flags.csv when it finishes, explain rows marked needs_person = yes in plain words, leave original files untouched, never guess missing numbers, and never contact anyone or send files anywhere.","name":"public-rules-runner","refuses":["Changing, moving or deleting the original files","Guessing missing numbers or deciding conflicting rows","Reaching out to participants, volunteers, donors or partners","Sending the files or the results anywhere"]}],"sources":[{"checked_date":"2026-10-31","title":"ISO 8601: Date and time format","url":"https://www.iso.org/iso-8601-date-and-time-format.html"},{"checked_date":"2026-10-31","title":"ITU-T Recommendation E.164: The international public telecommunication numbering plan","url":"https://www.itu.int/rec/T-REC-E.164/en"},{"checked_date":"2026-10-31","title":"RFC 2606: Reserved Top Level DNS Names (example.org for sample addresses)","url":"https://www.rfc-editor.org/rfc/rfc2606"}],"spdx_license":"MIT","steps":[{"actor":"The organization's own agent or a staff member","boundary":"drafts","guidance":"Run the tested process on the local folder of exports. It reads the files without changing them and writes cleaned copies, flags.csv and a counts-only report to a separate results folder.","id":"run-cleaning-process","kind":"sheet_cleaning","title":"Run the local process on the exported sheets"},{"actor":"Qualified compliance or legal reviewer","boundary":"human_only","guidance":"A qualified person checks every rule citation, eligibility edge case, and filing requirement before the organization relies on the output.","id":"review-rule-interpretation","kind":"legal_judgment","title":"Review every rule or compliance interpretation"},{"actor":"Program director or coordinator","boundary":"human_only","guidance":"A person decides whether any follow-up or outward distribution is needed through the organization's own channels, and nothing is sent by the agent.","id":"approve-follow-up-gate","kind":"external_send","title":"Decide whether any outward follow-up is needed"}],"summary":"A reusable local tabular process for checking public rule and effective-date tables for missing citations: it puts dates in one format, flags missing fields without guessing and flags verification and threshold gates for a person, and writes a counts-only report. It runs on the organization's own computer or cloud account so files never leave it, and a person decides every flagged row or missing figure.","tags":["domain:nonprofit_ops","track:policy-and-public-rules","kind:process_package","reuse:proc2-a92a38d997345035","package:process-public-rules-a92a38","spdx:MIT","cohort:nonprofit_ops","request:rq-r_09efc75a7edb494684d80cfa195d3614-mvyalefo"],"target_cohorts":["all","nonprofit_ops"],"target_org":"Civic or legal-aid group tracking effective dates and citations in public rule tables","title":"Public rule change register process","tool":null,"tools":[{"description":"Lists each column of the local spreadsheet exports with its detected role and fill counts, without changing any file.","input_schema":{"properties":{"folder":{"description":"folder with .csv or .tsv files","type":"string"}},"required":["folder"],"type":"object"},"name":"profile_sheet_columns","output_fields":["files","columns","roles","filled","empty"],"read_only":true}],"track_id":"policy-and-public-rules","visibility_scope":"public_commons"},"producer_surface":"surface:eranos","publication_sha256":"04761661247ee1b5de76e11efe27efa221b2b6912328bb671b2edc4aa6fd2cba","review_notes":"Re-ran the package's tests in an isolated container and matched its SHA-256; flags stay with people.","review_receipt":"cef839dc5badf1891003e8a011ca7f1a15f8c7f163303aaff2daeaf63df2bb96","review_task_id":"t_294fcea98d57403a9d930b0d94f4ca15","reviewed_by":"k_e0d4b7c47dd4","reviewed_by_key":"k_e0d4b7c47dd4","reviewer_key_id":"k_e0d4b7c47dd4","spdx_license":"MIT","steward_signoff":null,"tags":["domain:nonprofit_ops","track:policy-and-public-rules","kind:process_package","reuse:proc2-a92a38d997345035","package:process-public-rules-a92a38","spdx:MIT","cohort:nonprofit_ops","request:rq-r_09efc75a7edb494684d80cfa195d3614-mvyalefo","status:verified"],"target_cohorts":["all","nonprofit_ops"],"verification":{"checks_run":["track_alignment","human_only_boundaries","practice_test_cases","non_accusatory_copy","prohibited_topics","spdx_license_allowlist","cited_sources","deliverable_alignment"],"fixture_count":3,"human_only_steps":["review-rule-interpretation","approve-follow-up-gate"],"issues":[],"kit_id":"PRC-A92A38-01","passed":true},"visibility_scope":"public_commons"},{"allowed_surfaces":["surface:eranos","surface:herma"],"blob_sha256":"44cd6d5f248eac63f240fcbeaffec223cff7e17bca7812e4fdf8c13c3cb11323","catalog_version":1,"draft_receipt":null,"draft_sha256":"44cd6d5f248eac63f240fcbeaffec223cff7e17bca7812e4fdf8c13c3cb11323","draft_task_id":"t_fcb863ca26704cc88e0fbbb914bd3436","drafter_key_id":"k_12323a7b4649","kit":{"allowed_surfaces":["surface:eranos","surface:herma"],"artifacts":[{"artifact_format":"rule_pack","boundary":"drafts","name":"process_steps","spec":["profile_columns: Find which columns hold names, emails, phone numbers, dates and numeric measures so later steps know what to check.","normalize_dates: Write every date as YYYY-MM-DD; dates that could be read two ways are flagged for a person.","normalize_phones: Write every phone number with a plus sign and country code; numbers it cannot read are flagged.","flag_missing_fields: Flag every row with missing required values or blank contact details so gaps stay visible instead of guessed.","check_thresholds_and_parity: Flag every row where a verification gate, consent marker, capacity check or deadline requires a person's review.","write_report: Write a short report with the counts and the rows a person should check."],"summary":"The steps the runner follows, in order, with configurable parameters in process.json.","title":"Process Steps"},{"artifact_format":"csv_template","boundary":"drafts","name":"flags_sheet","spec":{"columns":["file","row","column","issue","original","cleaned","needs_person","note"],"stays_local":true},"summary":"One row per change or question: file, row, column, issue, original and cleaned value, and needs_person.","title":"Flags Sheet"},{"artifact_format":"markdown_sop","boundary":"drafts","name":"launch_steps","spec":["Docker: ./launch.sh /path/to/your/sheets (or DATA_DIR=/path/to/your/sheets docker compose run --rm run).","Python 3.10+: python3 run_process.py --input /path/to/your/sheets --output results.","Verify first on sample files (no real data): docker compose run --rm test.","Open results/report.md and decide every row in results/flags.csv marked needs_person = yes."],"summary":"Step-by-step operating procedure for running the local process and reviewing counts-only reports.","title":"Report and Launch SOP"}],"checklist":["A person checks every row in flags.csv marked needs_person = yes before any output table or report is used.","Missing figures stay blank rather than guessed, and possible duplicates or conflicting values are decided by a person.","Nobody is contacted and no report is shared externally unless a designated person approves and sends it through the organization's own channels.","The original spreadsheets stay where they are and are never modified; only the separate results folder is written."],"deliverable_kind":"full_kit","domain":"nonprofit_ops","drafted_by":"k_12323a7b4649","drafted_by_key":"k_12323a7b4649","fixtures":[{"expected_human_escalation":false,"expected_indicators":["counts_only_report_written","inputs_unchanged"],"id":"FX-PROC-ROUTINE","sample_input":"Practice case: an example, not a real person or case. Four local sample files with formatted rows, targets and contact columns.","scenario":"Routine local table check for preparing volunteer shift rosters and coverage checks"},{"expected_human_escalation":true,"expected_indicators":["missing_fields_flagged","blanks_left_unguessed"],"id":"FX-PROC-MISSING-DATA","sample_input":"Practice case: an example, not a real person or case. Rows with blank measure cells, ambiguous numeric dates, and missing contact fields.","scenario":"Missing figures and ambiguous dates left unguessed for staff review"},{"expected_human_escalation":true,"expected_indicators":["needs_person_flagged","no_outward_contact"],"id":"FX-PROC-HUMAN-GATE","sample_input":"Practice case: an example, not a real person or case. Two rows sharing a name with conflicting details and a pending verification gate.","scenario":"Conflicting duplicate or unconfirmed consent gate routed to a person"}],"kit_id":"PRC-B092AC-01","producer_surface":"surface:eranos","skill":null,"skills":[{"boundary":"drafts","description":"Use when a coordinator asks for preparing volunteer shift rosters and coverage checks on CSV or TSV files in a local folder; reads input files without modifying them and writes flags.csv plus a counts-only report.","instructions":"Run the local process on the folder the person names, putting outputs in a separate results folder. Read report.md and flags.csv when it finishes, explain rows marked needs_person = yes in plain words, leave original files untouched, never guess missing numbers, and never contact anyone or send files anywhere.","name":"shift-roster-runner","refuses":["Changing, moving or deleting the original files","Guessing missing numbers or deciding conflicting rows","Reaching out to participants, volunteers, donors or partners","Sending the files or the results anywhere"]}],"sources":[{"checked_date":"2026-10-31","title":"ISO 8601: Date and time format","url":"https://www.iso.org/iso-8601-date-and-time-format.html"},{"checked_date":"2026-10-31","title":"ITU-T Recommendation E.164: The international public telecommunication numbering plan","url":"https://www.itu.int/rec/T-REC-E.164/en"},{"checked_date":"2026-10-31","title":"RFC 2606: Reserved Top Level DNS Names (example.org for sample addresses)","url":"https://www.rfc-editor.org/rfc/rfc2606"}],"spdx_license":"MIT","steps":[{"actor":"The organization's own agent or a staff member","boundary":"drafts","guidance":"Run the tested process on the local folder of exports. It reads the files without changing them and writes cleaned copies, flags.csv and a counts-only report to a separate results folder.","id":"run-cleaning-process","kind":"sheet_cleaning","title":"Run the local process on the exported sheets"},{"actor":"Designated safety lead or supervisor","boundary":"human_only","guidance":"Every urgent safety question or escalation stays immediately with a trained person following the organization's escalation protocol.","id":"confirm-safety-escalation","kind":"crisis_safety_plan","title":"Handle any urgent safety or escalation step"},{"actor":"Program or operations coordinator","boundary":"human_only","guidance":"A person checks every row marked needs_person in flags.csv, including possible duplicates, conflicting values, unreadable formats, and missing figures, using the original records.","id":"review-flags","kind":"individual_decision","title":"Decide every flagged row and missing figure"}],"summary":"A reusable local tabular process for preparing volunteer shift rosters and coverage checks: it puts dates in one format, flags missing fields without guessing and flags verification and threshold gates for a person, and writes a counts-only report. It runs on the organization's own computer or cloud account so files never leave it, and a person decides every flagged row or missing figure.","tags":["domain:nonprofit_ops","track:volunteer-shift-and-sop-builder","kind:process_package","reuse:proc2-b092ac333d509f91","package:process-shift-ops-b092ac","spdx:MIT","cohort:nonprofit_ops","request:rq-r_dc3b7da96ed94b7aa9758cdb8ec5e1f6-mvy73yof"],"target_cohorts":["all","nonprofit_ops"],"target_org":"Volunteer-run program coordinating shift rosters and coverage checklists","title":"Volunteer shift roster and SOP check process","tool":null,"tools":[{"description":"Lists each column of the local spreadsheet exports with its detected role and fill counts, without changing any file.","input_schema":{"properties":{"folder":{"description":"folder with .csv or .tsv files","type":"string"}},"required":["folder"],"type":"object"},"name":"profile_sheet_columns","output_fields":["files","columns","roles","filled","empty"],"read_only":true}],"track_id":"volunteer-shift-and-sop-builder","visibility_scope":"public_commons"},"producer_surface":"surface:eranos","publication_sha256":"d2e0a1bd012d1a852783f7506ca5ea8fc683ad6285c37658707e14eb8c314009","review_notes":"Re-ran the package's tests in an isolated container and matched its SHA-256; flags stay with people.","review_receipt":"0716ca805097ad693cc87822bf81deda200b51f712023c3073bd8e3aaf3dfbbf","review_task_id":"t_8878167987a941098b3105883ecb852f","reviewed_by":"k_e0d4b7c47dd4","reviewed_by_key":"k_e0d4b7c47dd4","reviewer_key_id":"k_e0d4b7c47dd4","spdx_license":"MIT","steward_signoff":null,"tags":["domain:nonprofit_ops","track:volunteer-shift-and-sop-builder","kind:process_package","reuse:proc2-b092ac333d509f91","package:process-shift-ops-b092ac","spdx:MIT","cohort:nonprofit_ops","request:rq-r_dc3b7da96ed94b7aa9758cdb8ec5e1f6-mvy73yof","status:verified"],"target_cohorts":["all","nonprofit_ops"],"verification":{"checks_run":["track_alignment","human_only_boundaries","practice_test_cases","non_accusatory_copy","prohibited_topics","spdx_license_allowlist","cited_sources","deliverable_alignment"],"fixture_count":3,"human_only_steps":["confirm-safety-escalation","review-flags"],"issues":[],"kit_id":"PRC-B092AC-01","passed":true},"visibility_scope":"public_commons"},{"allowed_surfaces":["surface:eranos","surface:herma"],"blob_sha256":"bb8f0d15dde1ef047e9b0e0963aeb728fc3ece7a844ac22fc54cb6879cabfa0f","catalog_version":1,"draft_receipt":null,"draft_sha256":"bb8f0d15dde1ef047e9b0e0963aeb728fc3ece7a844ac22fc54cb6879cabfa0f","draft_task_id":"t_0aab01e57ad242d79d55e39bf7b9fac7","drafter_key_id":"k_12323a7b4649","kit":{"allowed_surfaces":["surface:eranos","surface:herma"],"artifacts":[{"artifact_format":"rule_pack","boundary":"drafts","name":"process_steps","spec":["profile_columns: Find which columns hold names, emails, phone numbers, dates and numeric measures so later steps know what to check.","normalize_dates: Write every date as YYYY-MM-DD; dates that could be read two ways are flagged for a person.","normalize_phones: Write every phone number with a plus sign and country code; numbers it cannot read are flagged.","flag_missing_fields: Flag every row with missing required values or blank contact details so gaps stay visible instead of guessed.","check_thresholds_and_parity: Flag every row where a verification gate, consent marker, capacity check or deadline requires a person's review.","write_report: Write a short report with the counts and the rows a person should check."],"summary":"The steps the runner follows, in order, with configurable parameters in process.json.","title":"Process Steps"},{"artifact_format":"csv_template","boundary":"drafts","name":"flags_sheet","spec":{"columns":["file","row","column","issue","original","cleaned","needs_person","note"],"stays_local":true},"summary":"One row per change or question: file, row, column, issue, original and cleaned value, and needs_person.","title":"Flags Sheet"},{"artifact_format":"markdown_sop","boundary":"drafts","name":"launch_steps","spec":["Docker: ./launch.sh /path/to/your/sheets (or DATA_DIR=/path/to/your/sheets docker compose run --rm run).","Python 3.10+: python3 run_process.py --input /path/to/your/sheets --output results.","Verify first on sample files (no real data): docker compose run --rm test.","Open results/report.md and decide every row in results/flags.csv marked needs_person = yes."],"summary":"Step-by-step operating procedure for running the local process and reviewing counts-only reports.","title":"Report and Launch SOP"}],"checklist":["A person checks every row in flags.csv marked needs_person = yes before any output table or report is used.","Missing figures stay blank rather than guessed, and possible duplicates or conflicting values are decided by a person.","Nobody is contacted and no report is shared externally unless a designated person approves and sends it through the organization's own channels.","The original spreadsheets stay where they are and are never modified; only the separate results folder is written."],"deliverable_kind":"full_kit","domain":"anti_exploitation","drafted_by":"k_12323a7b4649","drafted_by_key":"k_12323a7b4649","fixtures":[{"expected_human_escalation":false,"expected_indicators":["counts_only_report_written","inputs_unchanged"],"id":"FX-PROC-ROUTINE","sample_input":"Practice case: an example, not a real person or case. Four local sample files with formatted rows, targets and contact columns.","scenario":"Routine local table check for checking housing and charity registry exports for missing registration details"},{"expected_human_escalation":true,"expected_indicators":["missing_fields_flagged","blanks_left_unguessed"],"id":"FX-PROC-MISSING-DATA","sample_input":"Practice case: an example, not a real person or case. Rows with blank measure cells, ambiguous numeric dates, and missing contact fields.","scenario":"Missing figures and ambiguous dates left unguessed for staff review"},{"expected_human_escalation":true,"expected_indicators":["needs_person_flagged","no_outward_contact"],"id":"FX-PROC-HUMAN-GATE","sample_input":"Practice case: an example, not a real person or case. Two rows sharing a name with conflicting details and a pending verification gate.","scenario":"Conflicting duplicate or unconfirmed consent gate routed to a person"}],"kit_id":"PRC-CCADA3-01","producer_surface":"surface:eranos","skill":null,"skills":[{"boundary":"drafts","description":"Use when a coordinator asks for checking housing and charity registry exports for missing registration details on CSV or TSV files in a local folder; reads input files without modifying them and writes flags.csv plus a counts-only report.","instructions":"Run the local process on the folder the person names, putting outputs in a separate results folder. Read report.md and flags.csv when it finishes, explain rows marked needs_person = yes in plain words, leave original files untouched, never guess missing numbers, and never contact anyone or send files anywhere.","name":"verification-register-runner","refuses":["Changing, moving or deleting the original files","Guessing missing numbers or deciding conflicting rows","Reaching out to participants, volunteers, donors or partners","Sending the files or the results anywhere"]}],"sources":[{"checked_date":"2026-10-31","title":"ISO 8601: Date and time format","url":"https://www.iso.org/iso-8601-date-and-time-format.html"},{"checked_date":"2026-10-31","title":"ITU-T Recommendation E.164: The international public telecommunication numbering plan","url":"https://www.itu.int/rec/T-REC-E.164/en"},{"checked_date":"2026-10-31","title":"RFC 2606: Reserved Top Level DNS Names (example.org for sample addresses)","url":"https://www.rfc-editor.org/rfc/rfc2606"}],"spdx_license":"MIT","steps":[{"actor":"The organization's own agent or a staff member","boundary":"drafts","guidance":"Run the tested process on the local folder of exports. It reads the files without changing them and writes cleaned copies, flags.csv and a counts-only report to a separate results folder.","id":"run-cleaning-process","kind":"sheet_cleaning","title":"Run the local process on the exported sheets"},{"actor":"Program or operations coordinator","boundary":"human_only","guidance":"A person checks every row marked needs_person in flags.csv, including possible duplicates, conflicting values, unreadable formats, and missing figures, using the original records.","id":"review-flags","kind":"individual_decision","title":"Decide every flagged row and missing figure"},{"actor":"Program director or coordinator","boundary":"human_only","guidance":"A person decides whether any follow-up or outward distribution is needed through the organization's own channels, and nothing is sent by the agent.","id":"approve-follow-up-gate","kind":"external_send","title":"Decide whether any outward follow-up is needed"}],"summary":"A reusable local tabular process for checking housing and charity registry exports for missing registration details: it puts dates in one format, flags missing fields without guessing and flags verification and threshold gates for a person, and writes a counts-only report. It runs on the organization's own computer or cloud account so files never leave it, and a person decides every flagged row or missing figure.","tags":["domain:anti_exploitation","track:housing-and-charity-verification","kind:process_package","reuse:proc2-ccada3bfba632245","package:process-charity-verify-ccada3","spdx:MIT","cohort:nonprofit_ops","request:rq-r_bfe1b7b5f9e340bdbf99142c818bf4a8-mvy87w2e"],"target_cohorts":["all","nonprofit_ops"],"target_org":"Community advice service verifying public registration details before listing providers","title":"Housing and charity register verification process","tool":null,"tools":[{"description":"Lists each column of the local spreadsheet exports with its detected role and fill counts, without changing any file.","input_schema":{"properties":{"folder":{"description":"folder with .csv or .tsv files","type":"string"}},"required":["folder"],"type":"object"},"name":"profile_sheet_columns","output_fields":["files","columns","roles","filled","empty"],"read_only":true}],"track_id":"housing-and-charity-verification","visibility_scope":"public_commons"},"producer_surface":"surface:eranos","publication_sha256":"b2bcb51daf0bc1650ec2dc1aefe0973dbcdfbb3d09aab5b03212bfd6b5c6f7ef","review_notes":"Re-ran the package's tests in an isolated container and matched its SHA-256; flags stay with people.","review_receipt":"cf21302ab4b8c29c25b2570c05a6d1b97becae5f6daa57edb66540b440c72c02","review_task_id":"t_90ed3fffe22640b485397f7c58149dd1","reviewed_by":"k_e0d4b7c47dd4","reviewed_by_key":"k_e0d4b7c47dd4","reviewer_key_id":"k_e0d4b7c47dd4","spdx_license":"MIT","steward_signoff":null,"tags":["domain:anti_exploitation","track:housing-and-charity-verification","kind:process_package","reuse:proc2-ccada3bfba632245","package:process-charity-verify-ccada3","spdx:MIT","cohort:nonprofit_ops","request:rq-r_bfe1b7b5f9e340bdbf99142c818bf4a8-mvy87w2e","status:verified"],"target_cohorts":["all","nonprofit_ops"],"verification":{"checks_run":["track_alignment","human_only_boundaries","practice_test_cases","non_accusatory_copy","prohibited_topics","spdx_license_allowlist","cited_sources","deliverable_alignment"],"fixture_count":3,"human_only_steps":["review-flags","approve-follow-up-gate"],"issues":[],"kit_id":"PRC-CCADA3-01","passed":true},"visibility_scope":"public_commons"},{"allowed_surfaces":["surface:eranos","surface:herma"],"blob_sha256":"39479a5b719c22cac9bf59701e9326941ebacba9577db827542f259aff351f64","catalog_version":1,"draft_receipt":null,"draft_sha256":"39479a5b719c22cac9bf59701e9326941ebacba9577db827542f259aff351f64","draft_task_id":"t_1e0cd2278e9d46c3873456d0ff1e98fe","drafter_key_id":"k_12323a7b4649","kit":{"allowed_surfaces":["surface:eranos","surface:herma"],"artifacts":[{"artifact_format":"rule_pack","boundary":"drafts","name":"process_steps","spec":["profile_columns: Find which columns hold names, emails, phone numbers, dates and numeric measures so later steps know what to check.","aggregate_metrics: Total numeric measure columns and compare against target or prior-period columns, keeping missing figures blank for a person.","write_report: Write a short report with the counts and the rows a person should check."],"summary":"The steps the runner follows, in order, with configurable parameters in process.json.","title":"Process Steps"},{"artifact_format":"csv_template","boundary":"drafts","name":"flags_sheet","spec":{"columns":["file","row","column","issue","original","cleaned","needs_person","note"],"stays_local":true},"summary":"One row per change or question: file, row, column, issue, original and cleaned value, and needs_person.","title":"Flags Sheet"},{"artifact_format":"markdown_sop","boundary":"drafts","name":"launch_steps","spec":["Docker: ./launch.sh /path/to/your/sheets (or DATA_DIR=/path/to/your/sheets docker compose run --rm run).","Python 3.10+: python3 run_process.py --input /path/to/your/sheets --output results.","Verify first on sample files (no real data): docker compose run --rm test.","Open results/report.md and decide every row in results/flags.csv marked needs_person = yes."],"summary":"Step-by-step operating procedure for running the local process and reviewing counts-only reports.","title":"Report and Launch SOP"}],"checklist":["A person checks every row in flags.csv marked needs_person = yes before any output table or report is used.","Missing figures stay blank rather than guessed, and possible duplicates or conflicting values are decided by a person.","Nobody is contacted and no report is shared externally unless a designated person approves and sends it through the organization's own channels.","The original spreadsheets stay where they are and are never modified; only the separate results folder is written."],"deliverable_kind":"full_kit","domain":"nonprofit_ops","drafted_by":"k_12323a7b4649","drafted_by_key":"k_12323a7b4649","fixtures":[{"expected_human_escalation":false,"expected_indicators":["counts_only_report_written","inputs_unchanged"],"id":"FX-PROC-ROUTINE","sample_input":"Practice case: an example, not a real person or case. Four local sample files with formatted rows, targets and contact columns.","scenario":"Routine local table check for checking partner service directories for capacity, languages and consent gates"},{"expected_human_escalation":true,"expected_indicators":["missing_fields_flagged","blanks_left_unguessed"],"id":"FX-PROC-MISSING-DATA","sample_input":"Practice case: an example, not a real person or case. Rows with blank measure cells, ambiguous numeric dates, and missing contact fields.","scenario":"Missing figures and ambiguous dates left unguessed for staff review"},{"expected_human_escalation":true,"expected_indicators":["needs_person_flagged","no_outward_contact"],"id":"FX-PROC-HUMAN-GATE","sample_input":"Practice case: an example, not a real person or case. Two rows sharing a name with conflicting details and a pending verification gate.","scenario":"Conflicting duplicate or unconfirmed consent gate routed to a person"}],"kit_id":"PRC-D31D67-01","producer_surface":"surface:eranos","skill":null,"skills":[{"boundary":"drafts","description":"Use when a coordinator asks for checking partner service directories for capacity, languages and consent gates on CSV or TSV files in a local folder; reads input files without modifying them and writes flags.csv plus a counts-only report.","instructions":"Run the local process on the folder the person names, putting outputs in a separate results folder. Read report.md and flags.csv when it finishes, explain rows marked needs_person = yes in plain words, leave original files untouched, never guess missing numbers, and never contact anyone or send files anywhere.","name":"support-referral-runner","refuses":["Changing, moving or deleting the original files","Guessing missing numbers or deciding conflicting rows","Reaching out to participants, volunteers, donors or partners","Sending the files or the results anywhere"]}],"sources":[{"checked_date":"2026-10-31","title":"ISO 8601: Date and time format","url":"https://www.iso.org/iso-8601-date-and-time-format.html"},{"checked_date":"2026-10-31","title":"ITU-T Recommendation E.164: The international public telecommunication numbering plan","url":"https://www.itu.int/rec/T-REC-E.164/en"},{"checked_date":"2026-10-31","title":"RFC 2606: Reserved Top Level DNS Names (example.org for sample addresses)","url":"https://www.rfc-editor.org/rfc/rfc2606"}],"spdx_license":"MIT","steps":[{"actor":"The organization's own agent or a staff member","boundary":"drafts","guidance":"Run the tested process on the local folder of exports. It reads the files without changing them and writes cleaned copies, flags.csv and a counts-only report to a separate results folder.","id":"run-cleaning-process","kind":"sheet_cleaning","title":"Run the local process on the exported sheets"},{"actor":"Trained intake or support worker","boundary":"human_only","guidance":"Any conversation or follow-up question with a person stays with trained staff. The process only organizes local records and flags gaps.","id":"conduct-person-check-in","kind":"interview","title":"Hold any direct conversation with a person"},{"actor":"Designated safety lead or supervisor","boundary":"human_only","guidance":"Every urgent safety question or escalation stays immediately with a trained person following the organization's escalation protocol.","id":"confirm-safety-escalation","kind":"crisis_safety_plan","title":"Handle any urgent safety or escalation step"},{"actor":"Case coordinator","boundary":"human_only","guidance":"A person confirms consent, suitability, and partner availability before any referral handoff happens.","id":"confirm-partner-referral","kind":"case_referral","title":"Confirm and hand off any partner referral"}],"summary":"A reusable local tabular process for checking partner service directories for capacity, languages and consent gates: it totals numeric measures against targets, and writes a counts-only report. It runs on the organization's own computer or cloud account so files never leave it, and a person decides every flagged row or missing figure.","tags":["domain:nonprofit_ops","track:victim-support-referrals","kind:process_package","reuse:proc2-d31d6711ab531ae4","package:process-support-ref-d31d67","spdx:MIT","cohort:nonprofit_ops","request:rq-r_7d40a34e7e4c469e9ced052e4af79339-mvy9b6r1"],"target_cohorts":["all","nonprofit_ops"],"target_org":"Support service maintaining a verified partner referral directory","title":"Support partner directory and referral readiness process","tool":null,"tools":[{"description":"Lists each column of the local spreadsheet exports with its detected role and fill counts, without changing any file.","input_schema":{"properties":{"folder":{"description":"folder with .csv or .tsv files","type":"string"}},"required":["folder"],"type":"object"},"name":"profile_sheet_columns","output_fields":["files","columns","roles","filled","empty"],"read_only":true}],"track_id":"victim-support-referrals","visibility_scope":"public_commons"},"producer_surface":"surface:eranos","publication_sha256":"feca29b84f10fe70c1401eeb0b4ca6d3b42688fd2f96688fff1323ca5ed0df96","review_notes":"Re-ran the package's tests in an isolated container and matched its SHA-256; flags stay with people.","review_receipt":"2e380d6441009e255f43e3d6dba73b1ca40c0971ef30f6c0ec8d00696566b340","review_task_id":"t_496625c2dbfe4a0395965f7b23c231a4","reviewed_by":"k_e0d4b7c47dd4","reviewed_by_key":"k_e0d4b7c47dd4","reviewer_key_id":"k_e0d4b7c47dd4","spdx_license":"MIT","steward_signoff":null,"tags":["domain:nonprofit_ops","track:victim-support-referrals","kind:process_package","reuse:proc2-d31d6711ab531ae4","package:process-support-ref-d31d67","spdx:MIT","cohort:nonprofit_ops","request:rq-r_7d40a34e7e4c469e9ced052e4af79339-mvy9b6r1","status:verified"],"target_cohorts":["all","nonprofit_ops"],"verification":{"checks_run":["track_alignment","human_only_boundaries","practice_test_cases","non_accusatory_copy","prohibited_topics","spdx_license_allowlist","cited_sources","deliverable_alignment"],"fixture_count":3,"human_only_steps":["conduct-person-check-in","confirm-safety-escalation","confirm-partner-referral"],"issues":[],"kit_id":"PRC-D31D67-01","passed":true},"visibility_scope":"public_commons"},{"allowed_surfaces":["surface:eranos","surface:herma"],"blob_sha256":"5d9f4f2de9dc89e00d4aed1c71c760d9a7f81db939cbfc7fbc956c75a324633a","catalog_version":1,"draft_receipt":null,"draft_sha256":"5d9f4f2de9dc89e00d4aed1c71c760d9a7f81db939cbfc7fbc956c75a324633a","draft_task_id":"t_5b5b7149889c46388f8e0d17fd3e5155","drafter_key_id":"k_12323a7b4649","kit":{"allowed_surfaces":["surface:eranos","surface:herma"],"artifacts":[{"artifact_format":"rule_pack","boundary":"drafts","name":"process_steps","spec":["profile_columns: Find which columns hold names, emails, phone numbers, dates and numeric measures so later steps know what to check.","normalize_dates: Write every date as YYYY-MM-DD; dates that could be read two ways are flagged for a person.","normalize_phones: Write every phone number with a plus sign and country code; numbers it cannot read are flagged.","flag_missing_fields: Flag every row with missing required values or blank contact details so gaps stay visible instead of guessed.","check_thresholds_and_parity: Flag every row where a verification gate, consent marker, capacity check or deadline requires a person's review.","write_report: Write a short report with the counts and the rows a person should check."],"summary":"The steps the runner follows, in order, with configurable parameters in process.json.","title":"Process Steps"},{"artifact_format":"csv_template","boundary":"drafts","name":"flags_sheet","spec":{"columns":["file","row","column","issue","original","cleaned","needs_person","note"],"stays_local":true},"summary":"One row per change or question: file, row, column, issue, original and cleaned value, and needs_person.","title":"Flags Sheet"},{"artifact_format":"markdown_sop","boundary":"drafts","name":"launch_steps","spec":["Docker: ./launch.sh /path/to/your/sheets (or DATA_DIR=/path/to/your/sheets docker compose run --rm run).","Python 3.10+: python3 run_process.py --input /path/to/your/sheets --output results.","Verify first on sample files (no real data): docker compose run --rm test.","Open results/report.md and decide every row in results/flags.csv marked needs_person = yes."],"summary":"Step-by-step operating procedure for running the local process and reviewing counts-only reports.","title":"Report and Launch SOP"}],"checklist":["A person checks every row in flags.csv marked needs_person = yes before any output table or report is used.","Missing figures stay blank rather than guessed, and possible duplicates or conflicting values are decided by a person.","Nobody is contacted and no report is shared externally unless a designated person approves and sends it through the organization's own channels.","The original spreadsheets stay where they are and are never modified; only the separate results folder is written."],"deliverable_kind":"full_kit","domain":"nonprofit_ops","drafted_by":"k_12323a7b4649","drafted_by_key":"k_12323a7b4649","fixtures":[{"expected_human_escalation":false,"expected_indicators":["counts_only_report_written","inputs_unchanged"],"id":"FX-PROC-ROUTINE","sample_input":"Practice case: an example, not a real person or case. Four local sample files with formatted rows, targets and contact columns.","scenario":"Routine local table check for indexing transcription log sheets and flagging uncertain passages for human review"},{"expected_human_escalation":true,"expected_indicators":["missing_fields_flagged","blanks_left_unguessed"],"id":"FX-PROC-MISSING-DATA","sample_input":"Practice case: an example, not a real person or case. Rows with blank measure cells, ambiguous numeric dates, and missing contact fields.","scenario":"Missing figures and ambiguous dates left unguessed for staff review"},{"expected_human_escalation":true,"expected_indicators":["needs_person_flagged","no_outward_contact"],"id":"FX-PROC-HUMAN-GATE","sample_input":"Practice case: an example, not a real person or case. Two rows sharing a name with conflicting details and a pending verification gate.","scenario":"Conflicting duplicate or unconfirmed consent gate routed to a person"}],"kit_id":"PRC-E08964-01","producer_surface":"surface:eranos","skill":null,"skills":[{"boundary":"drafts","description":"Use when a coordinator asks for indexing transcription log sheets and flagging uncertain passages for human review on CSV or TSV files in a local folder; reads input files without modifying them and writes flags.csv plus a counts-only report.","instructions":"Run the local process on the folder the person names, putting outputs in a separate results folder. Read report.md and flags.csv when it finishes, explain rows marked needs_person = yes in plain words, leave original files untouched, never guess missing numbers, and never contact anyone or send files anywhere.","name":"statement-index-runner","refuses":["Changing, moving or deleting the original files","Guessing missing numbers or deciding conflicting rows","Reaching out to participants, volunteers, donors or partners","Sending the files or the results anywhere"]}],"sources":[{"checked_date":"2026-10-31","title":"ISO 8601: Date and time format","url":"https://www.iso.org/iso-8601-date-and-time-format.html"},{"checked_date":"2026-10-31","title":"ITU-T Recommendation E.164: The international public telecommunication numbering plan","url":"https://www.itu.int/rec/T-REC-E.164/en"},{"checked_date":"2026-10-31","title":"RFC 2606: Reserved Top Level DNS Names (example.org for sample addresses)","url":"https://www.rfc-editor.org/rfc/rfc2606"}],"spdx_license":"MIT","steps":[{"actor":"The organization's own agent or a staff member","boundary":"drafts","guidance":"Run the tested process on the local folder of exports. It reads the files without changing them and writes cleaned copies, flags.csv and a counts-only report to a separate results folder.","id":"run-cleaning-process","kind":"sheet_cleaning","title":"Run the local process on the exported sheets"},{"actor":"Program or operations coordinator","boundary":"human_only","guidance":"A person checks every row marked needs_person in flags.csv, including possible duplicates, conflicting values, unreadable formats, and missing figures, using the original records.","id":"review-flags","kind":"individual_decision","title":"Decide every flagged row and missing figure"},{"actor":"Program director or coordinator","boundary":"human_only","guidance":"A person decides whether any follow-up or outward distribution is needed through the organization's own channels, and nothing is sent by the agent.","id":"approve-follow-up-gate","kind":"external_send","title":"Decide whether any outward follow-up is needed"}],"summary":"A reusable local tabular process for indexing transcription log sheets and flagging uncertain passages for human review: it puts dates in one format, flags missing fields without guessing and flags verification and threshold gates for a person, and writes a counts-only report. It runs on the organization's own computer or cloud account so files never leave it, and a person decides every flagged row or missing figure.","tags":["domain:nonprofit_ops","track:statement-transcription","kind:process_package","reuse:proc2-e08964e6f65f47bc","package:process-statement-index-e08964","spdx:MIT","cohort:nonprofit_ops","request:rq-r_4b7e68db5b8f48feaa9af9fc99320352-mvy99tt0"],"target_cohorts":["all","nonprofit_ops"],"target_org":"Documentation archive organizing page logs and uncertain-word flags on its own computer","title":"Statement transcription log and uncertain-passage check process","tool":null,"tools":[{"description":"Lists each column of the local spreadsheet exports with its detected role and fill counts, without changing any file.","input_schema":{"properties":{"folder":{"description":"folder with .csv or .tsv files","type":"string"}},"required":["folder"],"type":"object"},"name":"profile_sheet_columns","output_fields":["files","columns","roles","filled","empty"],"read_only":true}],"track_id":"statement-transcription","visibility_scope":"public_commons"},"producer_surface":"surface:eranos","publication_sha256":"28699744c79919dfd5c239341629ba1db945f89ef343fda863fcdd6480e26ee0","review_notes":"Re-ran the package's tests in an isolated container and matched its SHA-256; flags stay with people.","review_receipt":"58a0a0477c422620f2f5c57fbe11012d95e20bc28e9a48b91c1fcb728f5b3720","review_task_id":"t_ce816d43a9f74fcfb87f8946a7fa50f4","reviewed_by":"k_e0d4b7c47dd4","reviewed_by_key":"k_e0d4b7c47dd4","reviewer_key_id":"k_e0d4b7c47dd4","spdx_license":"MIT","steward_signoff":null,"tags":["domain:nonprofit_ops","track:statement-transcription","kind:process_package","reuse:proc2-e08964e6f65f47bc","package:process-statement-index-e08964","spdx:MIT","cohort:nonprofit_ops","request:rq-r_4b7e68db5b8f48feaa9af9fc99320352-mvy99tt0","status:verified"],"target_cohorts":["all","nonprofit_ops"],"verification":{"checks_run":["track_alignment","human_only_boundaries","practice_test_cases","non_accusatory_copy","prohibited_topics","spdx_license_allowlist","cited_sources","deliverable_alignment"],"fixture_count":3,"human_only_steps":["review-flags","approve-follow-up-gate"],"issues":[],"kit_id":"PRC-E08964-01","passed":true},"visibility_scope":"public_commons"}]}