featkpr
Private demo

Every feature of your web app, named from its code and checked against its screens.

A feature inventory is the list of everything an app lets a person do. featkpr reads it from the code (the routes, the checks on them, the forms and the words at one commit), crawls a running copy, and names each feature with the code and screens behind it: 298 features in 13 modules on BookStack. What it cannot place yet, it lists for a person.

Five sources in, one named feature out #

Each source is read at one commit. A model names the features from what was read; everything else is read mechanically. The counts are from the missed-items check, which ran again from a fresh start with no help.

  1. The route list php artisan route:list 343of 359 routes read
  2. Permission checks each handler and its middleware 193of 194 checks found
  3. Forms the templates' forms 62of 93 forms placed
  4. Words language files, release notes cited with file and line
  5. Screens a crawl of a running copy 167screens captured
One naming passa model reads what was found and names features in modules; about a dollar of model calls for BookStack on 22 Sep
Entities See what changed on a page its words, with where each came from
  • revision-view-all · …/Permission.php:L2
  • v26.05: Revision … · …release-v26-05.md:L1
  • Revisions · …en/entities.php:L2
where it lives
  • GET /books/…/page/{pageSlug}/revisions
  • GET /books/…/revisions/{revId}

What no feature cites yet is listed for a person to name, set aside or put back: 231 of the 587 things the naming should have cited.

For routes, the answer key counts drops from the same list the reader uses; for the other sources the key is built independently.

What you get for each feature #

Every feature opens on one page: the words it is known by, where it lives, what is tested and which flows end there.

featkpr's page for one feature, See what changed on a page: its words with file and line, the two routes it lives on with their real screens, the cases tested and the flows that end there
One feature in featkpr: See what changed on a page, in BookStack's Entities module Open the screen at full size Screens of featkpr's app run on sample data, so the numbers inside them are examples, not BookStack's.
  1. What it isits name and module, and the words it is known by, each with the file and line it came from
  2. Where it liveseach route with the real screen the crawl captured
  3. What is testedits cases, how many a test covers, and the test files that cover them
  4. Flowsthe drafted flows that end on it

Works today, and not yet #

Works today #

  1. Features named from the codeModules and features named from the repository, each with the routes and permission checks behind it.298 features in 13 modules on BookStack · since 22 Sep
  2. A crawl of a running copyEvery page a signed-in admin can reach, and the create forms it is allowed to send, captured as real screens.167 screens, 8 forms sent, read from the app on 25 Sep 2026 · since 25 Sep
  3. The crawl edits and deletes what it madeSo edit and delete forms get screens too. It only touches what it created itself.verified on a test copy of BookStack on 27 Sep: 4 edited, 4 deleted, nothing else touched · since 27 Sep
  4. The missed-items checkfeatkpr runs again from a fresh start with no help and compares each step with an answer key, naming every miss.BookStack: 605 missed of 2,372 · since 26 Sep
  5. How complex each goal isFlows, inputs, preconditions, outside calls, waiting and roles, drafted by featkpr for you to correct.drafted from what drives it; your word is feedback on the draft · since 27 Sep

Not yet #

  1. Goals found in the codefeatkpr finds what each goal needs by itself: its inputs, its preconditions and the calls it makes to other services.decided, no week yet
  2. Node and Django readersPHP (Laravel, Mezzio), Python (FastAPI, click) and React are read today; Node and Django come next, Uptime Kuma and Paperless-ngx first.decided, no week yet
  3. Owners on featuresA person named per feature, not per module.decided, no week yet

See the feature map of BookStack #

On a 30-minute call we walk BookStack's map feature by feature, then look at what reading your repository would take.

BookStack's map, step by step, in the library

↑ ↓ to move, Enter to open, Esc to close