Repository navigation
Fulcrum v2.0.0
Release notes
IMPORTANT NOTE:
- macos dmg release asset removed since I forgot to notarise it (I didn't know that step was necessary after developer signing; the latest version has been notarised).
"Model my organisation" is redesigned around a two-pane
explorer-style editor and every model becomes reopenable, so the single worst
defect of the old editor (a mistake meant starting again) is gone.
- A two-pane editor. The left pane is the org tree itself: units
(Company, Group, Division, Department, Domain or your own label) nest to any
depth with teams as leaves, each row showing a rolled-up badge such as
"3 teams · 24 people". The dialog opens at nearly the full size of the app
window and can be maximised, so a large organisation gets a workspace that
scales with it; the split between the structure and the dependencies table
is draggable. The right pane is an inspector for the selected item.
The footer carries a live whole-org rollup and OK stays disabled (with the
reason shown) until the model has at least one team. A unit with no teams
beneath it shows a warning badge on its own row; hovering the row explains
it, so the signal sits on the content rather than far away in a footer. - Explorer-style building. The New dropdown (or a right-click on empty
space) starts a top-level item as any type, Company down to a single team;- or the context menu adds items inside any
unit and each item's Type dropdown makes it a Division, Department, a
custom label or a Team, converting it in place with its auto name following
("Team Gamma" becomes "Division Gamma"). Placeholder names run the Greek
alphabet (Team Alpha, Team Beta, on to Omega then Alpha 2) in the editor
and the wizard, rather than bare numbers. Rows drag like folders: onto a unit to
move inside, between rows to reorder, Ctrl held to copy. Illegal drops (a
tier above its parent, anything into a team, an item into its own subtree)
show the forbidden cursor, so the nesting rule teaches itself.
- or the context menu adds items inside any
- Edit my org. A new button and File menu entry reopen the current
organisation in the same editor fully populated, whatever its origin
(wizard, JSON import, random generation or a previous edit). Edit, OK,
rescore. "Model my organisation" still starts fresh and now confirms first
when that would discard user work. - The model survives a restart. The current org autosaves to a per-user
file and is restored on the next launch, so Edit my org works across
sessions. Behind the scenes the editor is a pure function of the same
blueprint shape the JSON import uses, which is what makes the round trip
lossless. - Leads and owners are never blank. A built-in pool of over 200 full
names (gender balanced, culturally varied, UK-weighted) fills every lead
and owner across the editor, the wizard and random generation. Focusing a
name field selects the whole value so a real name overtypes it in one
motion and a dice button rolls a different one. - Terms explain themselves. Incentive skew, ships without asking, the
four watched signals and the workload setting now carry plain-language
tooltips with a concrete example each, rendered from the same source as the
decision glossary. - Dependencies at any level. A dependency can now link any two items:
team to team as before, unit to unit or across levels (a division blocked
on a single platform team). The editor's dropdowns list teams and units by
path; an item can never depend on itself or on its own container or
contents, and an illegal row is flagged in red and ignored rather than
blocking OK. A unit-level dependency counts in the frames where both its
endpoints appear as nodes: it merges into the drilled map's arrows and the
aggregate scores, draws between the unit boxes on the complete picture and
is deliberately not converted into synthetic team queues, so the flat
team-level score stays honest. Rank is not policed: a division waiting on
one team is the bottleneck the score exists to expose. - The top level is playable. A "Play this level" toggle beside the map
caption scores the top level as its own frame: each top-level unit rolls
into one actor, loose teams stand as themselves and dependencies between
root units are priced there, completing the rule that an edge counts
wherever both its endpoints are nodes. The headline score stays the flat
team-level truth; "Score the whole org" switches back. The guide follows
the same frame, so a plan opened at the top level recommends unit-scale
moves. - Plain-English polish. Counts pluralise correctly everywhere including
the exported presentation ("over 1 move", never "1 moves"), signal
readings drop their internal unit names in the chips and in plan
rationales ("Escalations per release: 2", "Rework rate: 30%" and
"falls 7 -> 6" rather than "2.0 count", "30.0 percent" and
"falls 7.0 -> 6.0") and the glossary's move-classification
entry now states the exact point ranges behind great, good, neutral, bad
and blunder, taken from the same thresholds the engine uses, and explains
that deltas are scored within the focused section. When an aggregate scope
offers nothing better than neutral, the moves panel says the value lives
deeper and points at the map (and no longer claims a flat org can drill). - Structure operations. Duplicate, Move up, Move down and Move to sit on
the tree's context menu; removal confirms with what would be lost ("Remove
Division 1 and its 2 teams, 16 people?"); dependencies and their delays are
preserved through every edit, and removing a unit prunes any dependency its
subtree carried. - Fit and finish. The tree's + and minus glyphs are optically centred in
their buttons at every UI scale; the Type dropdown opens cleanly on click
instead of bouncing shut; every button that carries a dropdown menu shows
the same arrow as the spinboxes, so there is one disclosure cue across the
app. - A three-state ring model and a calmer palette. Controls show no ring at
rest, a green ring while hovered or keyboard-focused and enabled ("you can
use this") and a permanent red ring while disabled, across the app, its
dialogs and the installer. Amber is never a ring: it keeps carrying meaning
only (the score, authority encoding on the map, checked states). The map's
teal hover and change rings become a muted green, its keyboard cursor ring
matches and the primary button drops its light blue fill for the standard
dark one.
Existing JSON imports load unchanged and scoring is untouched: the same model
produces the same score as 1.4.3.
Licence
Dual-licensed by component: the model under GPL-3.0 and the user interface under
LGPL-3.0. Both texts ship with the app and are shown under Help.