Skip to main content
Paul Welty, PhD AI, WORK, AND STAYING HUMAN

Work log: Scholexis — March 17, 2026

What shipped today

This was a massive pipeline clearing session. The entire ready-for-dev queue was emptied and the critical-path course CRUD chain was completed end-to-end, advancing Scholexis from “dashboard with academic year setup” to “full course management with meeting schedules.”

The session started by sweeping the backlog of small issues: cascade deletion fixes for academic years and instructors (#127), dashboard loading/error/not-found pages (#128), migrating the profile page from an API route to server actions (#129), placeholder pages for sidebar links (#130), a security fix for missing auth checks in week management (#132), and a multi-tenancy fix for appPreferences (#131). Each was executed via the --auto pipeline — read spec, implement, type-check, test in Chrome, PR, merge. Six issues cleared in rapid succession.

With the queue clean, attention turned to the critical path. The course CRUD parent issue (#105) was decomposed into three children: #139 (list/create/edit/delete pages), #140 (show page with meeting display), and #141 (schedule management). All three were prepped and executed in sequence. The course form supports terms, instructors, color pickers, and rich text fields. The show page displays course details with meetings split by recurring vs one-time. The schedule editor implements a destroy-and-recreate pattern for managing meeting rows, with a base-ui Select display fix discovered along the way. A bonus bug fix (#144) patched the not-found page which was importing buttonVariants in a server component.

Completed

  • #127 — Fix cascade deletion for academic years and instructors
  • #128 — Add loading, error, and not-found pages for dashboard routes
  • #129 — Migrate profile page from API route to server actions
  • #130 — Add placeholder pages for schedule and tokens routes
  • #131 — Add userId to appPreferences table for multi-tenancy
  • #132 — Fix missing auth checks in getWeeks and updateWeekType
  • #139 — Build course list, create, edit, and delete pages
  • #140 — Build course show page with meeting display
  • #141 — Build course schedule management page
  • #144 — Fix not-found page buttonVariants server-component error

Release progress

Next.js port: 50/63 closed (13 open)

Carry-over

  • #107 is now unblocked — build assignment list and create/edit form. This was the main reason for completing the course chain.
  • 13 open issues remain in the Next.js port milestone, most blocked on upstream work that’s now landing.

Risks

  • base-ui Select SelectValue doesn’t auto-resolve item labels from the value — requires rendering computed text as children. This affects any Select where the display label differs from the value. Other Selects in the app (term, instructor dropdowns in course-form) may have the same issue but weren’t caught because the values are UUIDs and we haven’t looked at them closely. Worth a sweep.

Flags and watch-outs

  • The saveMeetings action uses a non-transactional destroy-and-recreate pattern. If the insert fails after delete, meetings are lost. Acceptable for now but should be wrapped in a transaction before production.
  • Dev server crashes occasionally during rapid navigation — seems related to Turbopack + dynamic route compilation. Restarting resolves it.

Next session

  • /issue prep 107 --auto then /issue exec 107 --auto — assignments CRUD is the next critical-path item, now unblocked by course CRUD
  • After #107: #108 (assignment detail page), #109 (task CRUD), then #111 (events)
  • Consider running /scout --focus ux to catch rough edges in the course management flow before moving deeper into the pipeline
  • Check if base-ui Select label issue affects course-form term/instructor dropdowns

Why customer tools are organized wrong

This article reveals a fundamental flaw in how customer support tools are designed—organizing by interaction type instead of by customer—and explains why this fragmentation wastes time and obscures the full picture you need to help users effectively.

Infrastructure shapes thought

The tools you build determine what kinds of thinking become possible. On infrastructure, friction, and building deliberately for thought rather than just throughput.

Server-side dashboard architecture: Why moving data fetching off the browser changes everything

How choosing server-side rendering solved security, CORS, and credential management problems I didn't know I had.

The work of being available now

A book on AI, judgment, and staying human at work.

The practice of work in progress

Practical essays on how work actually gets done.

AI agents need org charts, not pipelines

Every agent framework organizes around tasks. The agencies that actually work organize around competencies. The AI community is about to rediscover this the hard way.

The delegation problem nobody talks about

When your automated systems start finding real bugs instead of formatting issues, delegation has crossed a line most managers never see coming.

What your systems won't tell you

The most dangerous gap in any organization isn't between what you know and what you don't. It's between what your systems know and what they're willing to say.