{
  "schemaVersion": "2.0.0",
  "proposalId": "one-boise",
  "publicationDate": "2026-07-21",
  "lastUpdated": "2026-07-21",
  "status": "binding-resident-service-specification",
  "valueType": "compact-commitment",
  "basis": "The compact makes all twelve modules the acceptance specification for the One Boise resident operating layer.",
  "moduleCount": 12,
  "sourceFiles": [
    "docs/proposals/one-boise/One_Boise_Municipal_Operating_Layer_Working_Concept.md",
    "proposals/one-boise.html.raw"
  ],
  "sourceRefs": [
    "w3c-wcag-22",
    "one-boise-compact"
  ],
  "publicCommitments": [
    {
      "id": "one-account-with-offline-access",
      "commitment": "Offer one resident account while preserving phone, counter, mail, language, disability, and assisted-service channels."
    },
    {
      "id": "visible-responsibility",
      "commitment": "Show the accountable city or regional agency, current owner, service target, evidence, status history, and escalation path."
    },
    {
      "id": "minimum-data",
      "commitment": "Collect only the resident data required for the service, apply role-based access and retention limits, and keep public audit records separate from private resident records."
    },
    {
      "id": "appealable-decisions",
      "commitment": "Publish the rule, evidence, decision, deadline, and review path for appealable actions."
    },
    {
      "id": "verified-private-participation",
      "commitment": "Verify residency and district once, keep every individual signal or survey response private, and publish only aggregate results with wording, timing, and method."
    },
    {
      "id": "permanence-through-utility",
      "commitment": "Join daily services, reservations, programs, and alerts to the accountability layer so the platform becomes normal civic infrastructure rather than a disposable transparency site."
    }
  ],
  "deliverySchedule": [
    {"deadline": "transfer day", "result": "One phone number, one counter script, one responsibility map, and one case handoff rule operate across both former cities."},
    {"deadline": "day 90", "result": "One searchable service directory and public case-status page cover every municipal function."},
    {"deadline": "end of Year 1", "result": "All twelve modules pass the published acceptance tests in the responsive web layer while phone, counter, mail, language, disability, and assisted-service channels create the same records."},
    {"deadline": "end of Year 2", "result": "The mobile notification and location-aware service layer is live; no resident submits the same fact twice to two municipal systems; legacy resident portals are read-only archives."}
  ],
  "taskJourneys": [
    {
      "id": "resident-services",
      "navLabel": "Resident services",
      "title": "Use city services without learning the org chart",
      "exampleCaseId": "Case OB-2841",
      "status": "acceptance-test",
      "steps": [
        { "id": "account", "label": "One account", "description": "Utilities, trash, payments, reminders, permits, forms, documents, and service schedules share one accessible identity." },
        { "id": "request", "label": "Submit once", "description": "A missed pickup, maintenance problem, permit, bill, or assistance request creates one numbered record." },
        { "id": "track", "label": "Track", "description": "Owner, checklist, code version, service target, evidence, status, and next action remain visible." },
        { "id": "appeal", "label": "Escalate", "description": "A missed target or appealable decision opens review without resubmitting the facts." }
      ]
    },
    {
      "id": "parks-community",
      "navLabel": "Parks + facilities",
      "title": "Find, reserve, and use public space",
      "exampleCaseId": "Reservation OB-R-1148",
      "status": "acceptance-test",
      "steps": [
        { "id": "discover", "label": "Discover", "description": "Search parks, shelters, rooms, courts, fields, trails, restrooms, shade, and accessibility by amenity." },
        { "id": "reserve", "label": "Reserve", "description": "See availability, reserve space, apply for an event permit, pay, and upload required insurance in one record." },
        { "id": "programs", "label": "Programs", "description": "Browse community-center, youth, senior, class, open-gym, and waitlist availability." },
        { "id": "alerts", "label": "Use", "description": "Rules, fees, refunds, closures, access conditions, and reminders travel with the reservation." }
      ]
    },
    {
      "id": "city-calendar",
      "navLabel": "City calendar",
      "title": "See what is happening where you live",
      "exampleCaseId": "Calendar · District 4",
      "status": "acceptance-test",
      "steps": [
        { "id": "combine", "label": "Combine", "description": "Permitted events, parks, programs, public meetings, hearings, road closures, construction impacts, and project milestones use one calendar." },
        { "id": "filter", "label": "Filter", "description": "Filter by neighborhood, council district, date, type, family access, meeting, program, or transportation impact." },
        { "id": "inspect", "label": "Inspect", "description": "Each entry shows owner, place, permit or agenda record, access information, and authoritative update." },
        { "id": "follow", "label": "Follow", "description": "Residents save an item and receive change, closure, deadline, and follow-up alerts." }
      ]
    },
    {
      "id": "council-accountability",
      "navLabel": "Mayor + council",
      "title": "Follow a public decision from agenda to result",
      "exampleCaseId": "Item 2026-OB-17",
      "status": "acceptance-test",
      "steps": [
        { "id": "identify", "label": "Identify", "description": "Address lookup returns the resident's district, councilmember, mayoral contact path, and affected departments." },
        { "id": "understand", "label": "Understand", "description": "Agenda, plain-language summary, cost, neighborhood effect, source documents, and positions publish before action." },
        { "id": "vote", "label": "Vote", "description": "Motion, amendments, roll call, conflicts, and mayoral support, veto, signature, or comment are machine-readable." },
        { "id": "result", "label": "Track", "description": "The enacted decision connects to its owner, funding, milestones, and measured result." }
      ]
    },
    {
      "id": "public-signal",
      "navLabel": "Public Signal",
      "title": "See the issue. Cast your signal. Watch the vote.",
      "exampleCaseId": "Signal · Item 2026-OB-17",
      "status": "acceptance-test",
      "steps": [
        { "id": "see", "label": "See the issue", "description": "A selected major issue carries a plain-language summary, fiscal note, source documents, wording, opening time, and fixed close time." },
        { "id": "verify", "label": "Verify once", "description": "Successor-city residency and current council district are verified without publishing identity or address." },
        { "id": "signal", "label": "Cast", "description": "One verified resident selects support, oppose, undecided, or need more information under a permanent nonbinding label." },
        { "id": "compare", "label": "Compare", "description": "Only citywide and district aggregates publish; the private individual signal is then compared with the council roll call, mayoral action, and implementation." }
      ]
    },
    {
      "id": "district-surveys",
      "navLabel": "District surveys",
      "title": "Measure the people actually affected",
      "exampleCaseId": "Survey · GC-2026-04",
      "status": "acceptance-test",
      "steps": [
        { "id": "define", "label": "Define", "description": "Each survey names its citywide, district, neighborhood, project-area, or service-user population, question wording, method, and close date." },
        { "id": "verify", "label": "Verify", "description": "Residency, location, or service eligibility is checked once; accessible offline responses enter the same denominator." },
        { "id": "aggregate", "label": "Publish", "description": "Aggregate results publish by the defined population; individual responses and addresses remain private." },
        { "id": "act", "label": "Act", "description": "The result attaches to the responsible official, agenda item, service decision, or project record and remains visible through implementation." }
      ]
    },
    {
      "id": "budget-dashboard",
      "navLabel": "Budget",
      "title": "Follow public money from vote to payment",
      "exampleCaseId": "Budget · FY2028",
      "status": "acceptance-test",
      "steps": [
        { "id": "appropriation", "label": "Appropriation", "description": "Fund, restriction, department, amount, amendment, debt or grant source, and approving vote are linked." },
        { "id": "spending", "label": "Spending", "description": "Vendor payments, contracts, category, district or neighborhood attribution, and planned-versus-actual totals update together." },
        { "id": "variance", "label": "Variance", "description": "Overruns, delays, unspent balances, contract changes, and the responsible owner are visible." },
        { "id": "close", "label": "Close", "description": "Year-end actuals and project completion reconcile to the enacted budget and public promise." }
      ]
    },
    {
      "id": "neighborhood-investment",
      "navLabel": "Neighborhoods",
      "title": "Show what each neighborhood is getting",
      "exampleCaseId": "District 5 · FY2028",
      "status": "acceptance-test",
      "steps": [
        { "id": "locate", "label": "Locate", "description": "Address lookup opens funded, planned, delayed, and completed work for the resident's district and neighborhood." },
        { "id": "compare", "label": "Compare", "description": "Parks, libraries, crossings, sidewalks, drainage, safety, maintenance, shade, youth, senior, and business investments use common measures." },
        { "id": "own", "label": "Name the owner", "description": "Every item shows the responsible department or external authority and the council vote that funded it." },
        { "id": "prove", "label": "Prove delivery", "description": "Budget, schedule, delay, change, and completion evidence answer what the neighborhood received that year." }
      ]
    },
    {
      "id": "responsibility-map",
      "navLabel": "Responsibility Map",
      "title": "Do not let the org chart be where responsibility goes to die",
      "exampleCaseId": "Authority · Transit",
      "status": "acceptance-test",
      "steps": [
        { "id": "classify", "label": "Classify", "description": "The map states what One Boise controls directly, can influence, and cannot control." },
        { "id": "authority", "label": "Authority", "description": "It names the city, county, district, regional, state, federal, or contractor authority and cites the controlling source." },
        { "id": "record", "label": "Public record", "description": "Contacts, meetings, current projects, contracts, votes, and related documents appear together." },
        { "id": "route", "label": "Route", "description": "A resident reaches the correct owner, response target, status, and escalation path without restarting." }
      ]
    },
    {
      "id": "project-tracking",
      "navLabel": "Projects",
      "title": "Track a project from proposal to completion",
      "exampleCaseId": "Project OB-CIP-031",
      "status": "acceptance-test",
      "steps": [
        { "id": "promise", "label": "Promise", "description": "Title, owner, elected sponsors, neighborhood effect, public meetings, survey results, and approving vote define the baseline." },
        { "id": "fund", "label": "Fund", "description": "Budget, funding source, contractor, contract, and amendments remain attached." },
        { "id": "deliver", "label": "Deliver", "description": "Phase, timeline, next milestone, current status, delay reason, documents, photos, and inspections update in one record." },
        { "id": "measure", "label": "Measure", "description": "Completion metrics reconcile the delivered result to the baseline instead of closing on an announcement." }
      ]
    },
    {
      "id": "public-meetings",
      "navLabel": "Meetings + media",
      "title": "Make the public meeting usable",
      "exampleCaseId": "Meeting · 2028-05-09",
      "status": "acceptance-test",
      "steps": [
        { "id": "watch", "label": "Watch", "description": "Live and recorded council, committee, board, and commission meetings use one searchable index." },
        { "id": "jump", "label": "Jump", "description": "Searchable transcripts, agenda-item timestamps, plain-language summaries, materials, and votes move together." },
        { "id": "comment", "label": "Comment", "description": "Authorized public-comment channels, written-comment deadlines, accessibility, and language access are explicit." },
        { "id": "follow", "label": "Follow", "description": "Saved issues trigger alerts for continuances, amendments, follow-up votes, and implementation milestones." }
      ]
    },
    {
      "id": "contact-routing",
      "navLabel": "Contact + escalate",
      "title": "Turn contact into accountable workflow",
      "exampleCaseId": "Contact OB-C-4402",
      "status": "acceptance-test",
      "steps": [
        { "id": "describe", "label": "Describe", "description": "Address, issue type, district, urgency, service category, and accessibility needs identify the request." },
        { "id": "route", "label": "Route", "description": "The form reaches the correct councilmember, mayoral office, city department, or outside authority." },
        { "id": "confirm", "label": "Confirm", "description": "The resident receives a confirmation number, routing owner, expected response time, and current status." },
        { "id": "escalate", "label": "Escalate", "description": "A missed response target opens a named escalation path without sending another untracked email." }
      ]
    }
  ],
  "guardrails": [
    "Web-first, not web-only",
    "WCAG-conforming resident and staff interfaces",
    "Minimum necessary data collection",
    "Role-based access and retention limits",
    "Public audit history without disclosure of private resident records",
    "Published ownership, service targets, and escalation paths",
    "Security, privacy, accessibility, and records acceptance tests written into every procurement and cutover",
    "Verified residency and district assignment without publishing identity, address, individual signals, or individual survey responses",
    "Public Signal is permanently nonbinding and publishes its wording, timing, method, citywide result, district result, council roll call, mayoral action, and implementation record",
    "Responsive web delivery before the mobile notification layer; neither replaces an offline channel"
  ],
  "publicSignalRule": "One verified successor-city resident may choose support, oppose, undecided, or need more information on a selected major issue. Only aggregate citywide and district results publish. The response is nonbinding, private at the individual level, and permanently joined to the later council, mayoral, and implementation record.",
  "surveyRule": "Every survey defines its citywide, district, neighborhood, project-area, or service-user population before opening; publishes wording, timing, method, and aggregate result; keeps individual responses private; and follows the affected decision through implementation.",
  "deliveryArchitecture": "Responsive web first; mobile notification and location-aware service layer second; phone, counter, mail, language, disability, and assisted service always create the same authoritative record.",
  "exampleDataRule": "Example case identifiers demonstrate the required public record and never contain real resident data.",
  "offlineRule": "No resident must use a web account. Phone, counter, mail, language access, disability accommodation, and assisted service create the same case record and receive the same status and appeal rights."
}
