Icons on every input feature; why-lines; question titles; voice rule
Desk/receipt titles become questions (What's been proposed? / What happens to your proposal? / What came in? / Which proposal is this?), Where to send it and Record a prospect explain why before the field, lucide icons on input-bearing features, README's alternatives rule reworded (draw people in with a real path, not necessarily a slogan) and its stale /develop-proposal + followup references fixed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
bd19da9959
commit
981a448b30
@@ -44,7 +44,7 @@ itself. `.gitea/workflows/deploy.yml` pins the portal version:
|
||||
|
||||
```yaml
|
||||
env:
|
||||
PORTAL_RELEASE: v0.1.0 # a release tag on uhhm/portal
|
||||
PORTAL_RELEASE: v0.2.3 # a release tag on uhhm/portal
|
||||
```
|
||||
|
||||
Upgrading (or downgrading) portal is bumping that line and pushing —
|
||||
@@ -132,7 +132,7 @@ entirely in this repo, in this order:
|
||||
infrastructure repo's `n8n-workflows/`). Rename a page or a label
|
||||
and its workflow must be updated in lockstep.
|
||||
|
||||
5. **Change the system through itself.** `/develop-proposal` takes a
|
||||
5. **Change the system through itself.** `/develop/proposal` takes a
|
||||
proposed replacement for any content file (`questions/*.yaml` or
|
||||
`aggregates.yaml` — nothing else is in scope) — from a person, or
|
||||
eventually a locally-run model, through the same public form. An
|
||||
@@ -147,9 +147,11 @@ The rules every page here follows:
|
||||
|
||||
- **The title is the only question.** A page asks one thing — its
|
||||
`name`. Nothing below it asks anything.
|
||||
- **Alternatives are bold statements**, argued against each other —
|
||||
positions we'd like a visitor to get behind, in our voice, never
|
||||
the visitor's presumed voice and never a question.
|
||||
- **Alternatives draw people in.** Each one suggests a real path a
|
||||
visitor could take — a position to get behind or a thing to do next,
|
||||
in our voice, never the visitor's presumed voice and never a
|
||||
question. A category label ("Our Composition") is not an
|
||||
alternative; "Follow the build as it lands" is.
|
||||
- **Explain why, then hand over the field.** Where input is needed,
|
||||
the feature's name and description state the reason ("the reply is
|
||||
personal — it needs an address"), and labels are nouns, not
|
||||
@@ -159,7 +161,7 @@ The rules every page here follows:
|
||||
that gives them an answer — not segments to self-select into. The
|
||||
question nav (every page's footer) surfaces all questions the
|
||||
current visitor qualifies for, so nothing depends on front-page
|
||||
space; post-submission pages carry `followup: true` and only join
|
||||
space; post-submission pages (nested non-index files, or `followup: true`) only join
|
||||
the nav once the visitor holds an answer chain.
|
||||
|
||||
## Schema quick reference
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name: Development proposals
|
||||
name: What's been proposed?
|
||||
qualifies: owners
|
||||
description: >
|
||||
Proposed changes to the questions repo, awaiting a decision.
|
||||
|
||||
@@ -21,6 +21,7 @@ alternatives:
|
||||
- Every proposal gets read by a person before anything moves.
|
||||
features:
|
||||
- name: The reference
|
||||
icon: lucide:book-open
|
||||
description: >
|
||||
Every page this site serves, verbatim — check what exists
|
||||
before proposing against it.
|
||||
@@ -32,6 +33,7 @@ alternatives:
|
||||
jq: >
|
||||
{name: .full_name, description: .description, url: .html_url}
|
||||
- name: Sign it
|
||||
icon: lucide:pen-line
|
||||
description: >
|
||||
A proposal is a stance — it carries a name, and an address
|
||||
if you want the outcome to reach you.
|
||||
@@ -43,6 +45,7 @@ alternatives:
|
||||
type: email
|
||||
optional: true
|
||||
- name: The change
|
||||
icon: lucide:git-branch
|
||||
description: >
|
||||
Pick the page you're changing and its current content loads
|
||||
below, ready to edit in place — or name a new file's path if
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Reached from the proposal form only - and provably so: the visitor
|
||||
# must hold a ?chain= lineage ending at an answer to proposal.yaml.
|
||||
requires_chain: proposal
|
||||
name: Proposal received
|
||||
name: What happens to your proposal?
|
||||
description: >
|
||||
It's in the queue. An owner reads every proposal in full — approved
|
||||
ones open a real pull request, and the same checks every human
|
||||
|
||||
@@ -16,6 +16,7 @@ alternatives:
|
||||
- We read every word before breaking ground.
|
||||
features:
|
||||
- name: What we've built
|
||||
icon: lucide:layers
|
||||
description: A few things already out in the world.
|
||||
resource:
|
||||
source:
|
||||
@@ -35,6 +36,7 @@ alternatives:
|
||||
elif .private then null
|
||||
else .html_url end)}
|
||||
- name: Your brief
|
||||
icon: lucide:file-text
|
||||
description: >
|
||||
A few lines are enough to begin a conversation — we need a
|
||||
name and an address because the reply is personal, and the
|
||||
@@ -66,7 +68,10 @@ alternatives:
|
||||
- Consider yourself posted.
|
||||
features:
|
||||
- name: Where to send it
|
||||
description: ""
|
||||
icon: lucide:mail
|
||||
description: >
|
||||
Notes go to a person, not a list — a name and an address is
|
||||
all it takes.
|
||||
requirements:
|
||||
- name: name
|
||||
label: Name
|
||||
@@ -86,6 +91,7 @@ alternatives:
|
||||
- Knock — we actually answer.
|
||||
features:
|
||||
- name: A way to reach you
|
||||
icon: lucide:at-sign
|
||||
description: The reply is personal — it needs a name and an address.
|
||||
requirements:
|
||||
- name: name
|
||||
@@ -94,6 +100,7 @@ alternatives:
|
||||
label: Email
|
||||
type: email
|
||||
- name: Your angle
|
||||
icon: lucide:compass
|
||||
description: >
|
||||
We build around what each person actually brings — say what
|
||||
that is, in your own words.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# addressed by its record key. The {record} placeholder receives the
|
||||
# URL segment; the section's qualifies (plus the resource's own
|
||||
# requires_group) keeps it owner-only.
|
||||
name: One proposal
|
||||
name: Which proposal is this?
|
||||
description: >
|
||||
A single development proposal, addressed by its record key — link or
|
||||
paste a chain hash from the desk.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name: The review desk
|
||||
name: What came in?
|
||||
description: >
|
||||
Sign in as an organizational owner to see what's come in.
|
||||
alternatives:
|
||||
@@ -55,13 +55,17 @@ alternatives:
|
||||
label: Churn
|
||||
|
||||
- name: Record a prospect
|
||||
description: ""
|
||||
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: ""
|
||||
description: The organization and one person there to reach.
|
||||
requirements:
|
||||
- name: name
|
||||
label: Organization
|
||||
|
||||
Reference in New Issue
Block a user