What a mechanic is, shown on one BookStack book.
A mechanic is the kind of action behind something an app lets you do, named in plain words, the same way in every app featkpr reads. Creating a book and creating a shelf in BookStack are one mechanic: “Makes a new one”.
BookStack · production's goal records, read 21 Oct 2026, 18:43 UTC (store seq 481521) · named with featkpr's mechanics list 1.0.5 · 34 mechanics in the list
One book, button by button #
BookStack's page for one book, as featkpr's crawl captured it. Each lettered button is a goal featkpr keeps, and each goal gets its mechanic: what the action does to the book, in words that do not depend on what BookStack calls the button.

BookStack · crawl of 25 Sep 2026 · labels: production's goals for a book, read 21 Oct 2026, 18:43 UTC, mechanics list 1.0.5
-
Edit Changes it
what its mechanic says to check As someone allowed: the book's fields change. As someone who may not: refused, and nothing changes.
-
Sort Changes the order
what its mechanic says to check As someone allowed: the chapters and pages change order. As someone who may not: refused, the order stays.
-
Copy Makes a copy of it
what its mechanic says to check A second book appears, and the first is left as it was.
-
Delete Moves it to the bin
what its mechanic says to check As someone allowed: the book leaves the shelf and waits in the recycle bin, where it can be brought back. As someone who may not: refused, the book stays.
-
Export Downloads it as a file
what its mechanic says to check As someone allowed: a file in the chosen format. As someone who may not: refused, no file.
The buttons without a letter act on other things, or on who may see the book: New Page, New Chapter, Permissions, Watch and Favourite. Whatever featkpr keeps for them is on BookStack's mechanics page.
The Delete button does not delete #
BookStack's code moves a deleted book to a recycle bin. featkpr reads that from the code, so the mechanic is “Moves it to the bin”, whatever the button says. Three mechanics make the bin together: in, back out, and gone for good.
Moves it to the bin 5 goals
Deletes it for good 2 goals
Brings it back 2 goals, from the bin to the shelf
From the codeLikelyA guesshow sure featkpr is of each goal's mechanic
Where the mechanic shows in featkpr #
Every goal's page in featkpr says what the goal does, and how sure featkpr is. The app labels the line “What it does”: on this site, that is the mechanic.

How sure, said on every goal #
featkpr says where each mechanic comes from. A guess is shown, but it never picks a test or lets featkpr write to the app until you or the code settle it. Anyone who owns the app can answer “Not right?” to correct one.
How a goal's tests are then proven, by sending each one again as a user who must be refused, is in BookStack's run report.
two goals in featkpr, on recorded sample data; the app's label “What it does” is the mechanic
The whole list, two apps side by side #
Every mechanic in its family, with how many goals each app has under it. Mechanics are few and the same for every app, so a long app means bigger counts, never new rows. A dash means featkpr has found no goal for that mechanic in that app yet.
| Family, then each mechanic | BookStack 165 goals · crawled 25 Sep 2026 · store seq 481521 | Immich 154 goals · crawled 2 to 9 Oct 2026 · store seq 468538 |
|---|---|---|
| Make or remove | 39goals | 58goals |
| Makes a new one | 13 | 19 |
| Makes a copy of it | 4 | 1 |
| Deletes it for good | 15 | 31 |
| Moves it to the bin | 5 | 2 |
| Brings it back | 2 | 4 |
| Puts it away, still readable | – | 1 |
| Change | 22goals | 43goals |
| Changes it | 16 | 30 |
| Moves it somewhere else | 4 | – |
| Changes the order | 2 | – |
| Joins or splits them | – | 2 |
| Turns it on or off | – | 6 |
| Moves it to its next step | – | 5 |
| Connect | – | 17goals |
| Connects it to another one | – | 7 |
| Disconnects it from another one | – | 7 |
| Gives it to someone | – | 2 |
| Lets someone else see it | – | 1 |
| Lets someone do more | – | – |
| Look and find | 78goals | 13goals |
| Shows it | 44 | 3 |
| Finds the matching ones | 1 | 5 |
| Downloads it as a file | 33 | – |
| Checks that it is right | – | 4 |
| Builds a result from what is there | – | 1 |
| Bring in or send | 4goals | 5goals |
| Brings rows in from a file | 3 | 2 |
| Sends a message | – | 1 |
| Starts a job | 1 | 2 |
| Notes down what happened | – | – |
| People and access | 22goals | 18goals |
| Signs you in | 1 | 5 |
| Signs you out | – | 3 |
| Makes a new account | 2 | 1 |
| Sets a password or key | 11 | 6 |
| Changes a setting | 5 | 2 |
| Adds a comment or reaction | 3 | 1 |
| Amounts | – | – |
| Sets an amount aside | – | – |
| Moves an amount from one to another | – | – |
| How sure featkpr is of each goal's mechanic | From the code57Likely51A guess57 | From the code39Likely64A guess51 |
Each app gets a mechanics page #
An app's page puts every goal under its mechanic, on the same seven families, with a filter for long apps. Each opens on one of the app's real screens, read by featkpr's crawl.
What works today, and what does not yet #
Works today as of 21 Oct 2026
Not yet
See your own app's mechanics #
On the call we walk BookStack's goals and what each one does, then talk about yours. Tim replies by hand.