# What UHHM, as a business, needs this site to do - stated apart from # how the pages word it. `question_lint` checks every need against the # pages and aggregates.yaml (portal `src/needs.rs`): a path of # submissions gets the visitor's answer into `lands_in` within the # effort budget, `handled_by` has a desk over that bucket, and every # `done_when` state is reachable through the moves the desk offers. # # The personas are visitors in their own words - never the site's. # `question_lint --needs-tasks` turns each page on their path into a # typed choice for an answering engine; `--needs-score` grades its # picks. A misroute means the page said one thing and they heard # another. The runtime never reads this file. needs: - id: commission who: someone with a problem software could solve, and a budget wants: UHHM to take the work on via: Good software begins with a clear argument lands_in: projects handled_by: owners done_when: [accepted, declined] max_steps: 1 # name, email, the build, the organization - the page argues for # each of the four; a fifth would need the same argument. max_fields: 4 - id: follow who: someone curious who isn't ready to get involved wants: to hear when something ships via: Attention is earned lands_in: subscribers handled_by: owners # Being on the list is the finished state; leaving is theirs to do. done_when: [open, unsubscribed] max_steps: 1 max_fields: 2 - id: collaborate who: a developer, designer or researcher wants: to work with UHHM via: Work happens through dialogue, not tickets lands_in: applicants handled_by: owners done_when: [active, declined] max_steps: 1 max_fields: 3 - id: improve-site who: anyone using this site wants: the site itself to change enters: /develop/proposal # Announced, not open: the automation that turns a proposal into a # pull request is still being built, so the alternative is disabled. planned: true lands_in: development_proposals handled_by: owners done_when: [approved, rejected] max_steps: 1 max_fields: 3 - id: track-prospect who: an owner who met an organization worth following up wants: the relationship written down and walked to an outcome enters: /review enters_as: owners via: Record a prospect lands_in: organizations handled_by: owners done_when: [client, past_client] max_steps: 1 max_fields: 2 personas: - id: architecture-firm need: commission text: > We run a small architecture firm and our project files are scattered across three cloud drives. We want to pay someone to set up proper storage and backups we control ourselves. - id: climbing-gym-founder need: commission text: > I have an idea for a booking app for climbing gyms and I'm looking for a team that can build the first version with me. - id: municipality-buyer need: commission text: > Our municipality needs an internal tool for tracking building permits. We are looking for a vendor who can scope it and deliver it. - id: exhibition-visitor need: follow text: > I saw your drawing network at an exhibition and liked it. I don't want to get involved, I'd just like to know when there is news. - id: tech-journalist need: follow text: > I write about Nordic technology. Keep me posted on what you release so I can cover it. - id: rust-developer need: collaborate text: > I'm a Rust developer between jobs and I like that you build in the open. I would love to contribute, and maybe join you. - id: interaction-designer need: collaborate text: > I'm an interaction designer. I want to work with you on the drawing interface. - id: student-intern need: collaborate text: > I'm a computer science student looking for a summer internship doing infrastructure work. - id: site-critic need: improve-site text: > Your contact form never says how long a reply takes. You should add that.