Files
questions/questions/review/index.yaml
T
Bendik LynghaugandClaude Opus 5 caba12df09
Lint and reload / lint (push) Successful in 1s
Lint and reload / reload (push) Successful in 0s
Ask the juniper question in the open
/einer states what is known about juniper heartwood extractives — the
sesquiterpenes that carry the scent are the ones that inhibit decay
fungi — and what is not, then takes the two things the project needs:
people following along, and people with wood, equipment or lab time.

Both land in one bucket, worked from /review, because at this stage
they are the same conversation.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o
2026-10-06 17:28:34 +02:00

238 lines
6.8 KiB
YAML

name: What came in?
description: >
Sign in as an organizational owner to see what's come in.
alternatives:
- name: Applicants
description: ""
action: /review
consequence: [Confirm]
features:
- name: ""
description: ""
resource:
source:
kind: kv
bucket: applicants
requires_group: owners
transitions:
- to: invited
label: Invite
- to: declined
label: Decline
- from: invited
to: active
label: Onboard
- from: invited
to: declined
label: Decline
- from: active
to: departed
label: Depart
- name: Organizations
description: >
Client relationships as tracked state — advanced as the
relationship becomes real.
action: /review
consequence: [Confirm]
features:
- name: ""
description: ""
resource:
source:
kind: kv
bucket: organizations
requires_group: owners
transitions:
- from: prospect
to: client
label: Becomes client
- from: prospect
to: past_client
label: Archive
- from: client
to: past_client
label: Churn
- name: Record a prospect
description: >
A relationship worth tracking before it's a project — enter it
here and walk it through its states from the desk.
action: /review
consequence: [Record]
record_as: organizations
encouragements:
- Written down is halfway to followed up.
features:
- name: ""
description: The organization and one person there to reach.
requirements:
- name: name
label: Organization
- name: contact
label: Contact
- name: note
label: Anything worth remembering
type: textarea
optional: true
# A guest for a conversation on chat.uhhm.no: an account at id.uhhm.no
# with a passkey of their own, a place in cnats_users (which is what
# lets someone into the lobby, where the video calls are), and a mail
# saying when to turn up. The link lasts 24 hours.
- name: Invite to a conversation
description: >
Someone you want to talk to on chat.uhhm.no. They get a mail from
bl@uhhm.no with a link to make a passkey with us (valid for 24
hours) and the time to turn up in the lobby, where the video is.
action: /review
consequence: [Send the invite]
invite:
group: cnats_users
mail:
subject: "A conversation with {site_name}, {tidspunkt}"
body: |-
Hello {name},
You are invited to a conversation on chat.uhhm.no, {tidspunkt}.
First, make a passkey with us. Open the link below, add a
passkey, and press "Save" at the end: without Save it is not
kept. The link works until {expires}:
{link}
Your username is {username}.
When the time comes, go to https://chat.uhhm.no, sign in with
the passkey, and you land in the lobby. Press the video button
there, and we are in.
{notat}
features:
- name: ""
description: Who, and when to meet in the lobby.
requirements:
- name: name
label: Name
- name: email
label: Email
type: email
- name: tidspunkt
label: When
type: datetime-local
- name: notat
label: A line for them (optional)
type: textarea
optional: true
# Every invite sent from here, from portal's own invites bucket. The
# row carries the one-time link too, should the mail not reach them.
- name: Invited
description: >
Everyone invited from this desk, with their one-time link and when
it runs out. The mail went out by itself; the link is here should
it not reach them. A link that ran out can be sent again; mark an
invite done once they have signed in.
action: /review
consequence: [Confirm]
features:
- name: ""
description: One row per invite.
resource:
source: { kind: kv, bucket: portal_invites }
requires_group: owners
transitions:
- { from: open, to: done, label: Done }
- { from: expired, to: open, label: Send again }
- { from: expired, to: done, label: Done }
- name: Projects
description: ""
action: /review
consequence: [Confirm]
features:
- name: ""
description: ""
resource:
source:
kind: kv
bucket: projects
requires_group: owners
transitions:
- to: accepted
label: Accept
- to: declined
label: Decline
- name: Subscribers
description: ""
action: /review
consequence: [Send]
features:
- name: ""
description: ""
resource:
source:
kind: kv
bucket: subscribers
requires_group: owners
- name: Compose newsletter
description: >
Sends to everyone above - picked up by an automation watching
this question, not portal itself.
requirements:
- name: subject
label: Subject
- name: body
label: Body
type: prosekit
# The juniper question (/einer): everyone following along and everyone
# offering wood, equipment or lab time, in one list.
- name: Einer
description: >
Innkomne fra /einer — svar dem, eller lukk raden når samtalen er
ferdig.
action: /review
consequence: [Confirm]
features:
- name: ""
description: ""
resource:
source:
kind: kv
bucket: einer
requires_group: owners
transitions:
- to: answered
label: Answered
- to: closed
label: Close
- from: answered
to: closed
label: Close
- name: Announced pages
description: >
Pages with an `event:` window, kept here by portal itself. When a
window closes the record becomes a task: post what happened,
then mark it done.
action: /review
consequence: [Confirm]
features:
- name: ""
description: ""
resource:
source:
kind: kv
bucket: portal_events
requires_group: owners
transitions:
- from: awaiting_summary
to: summarized
label: Posted what happened
- from: announced
to: summarized
label: Needs no summary