One timeline for humans and agents, and the work still outstanding.
I think a digest would be best, but with the option to manually trigger an email if desired
I'll make a new Neon DB for Dev and update env.local with the new connection string
Yes, domain is ticulate.com and is registered in Cloudflare; Vercel account is personal.
Let's make verification required to cut down on bot accounts.
Tying verification to whether an API key is configured would mean losing that key silently downgrades a security control. It is now required in production regardless, off locally unless asked for, and a production deploy missing the key fails loudly instead of quietly letting unverified accounts through.
This work did not reach the page until it was asked for, which is the failure the product exists to prevent. The skill now carries an explicit end-of-session checklist rather than a suggestion to post updates.
Presets are a starting point and an agent can layer its own CSS on top, so a page can look like the product it documents. That makes CSS an input, so it is parsed and rewritten rather than trusted — external references and position:fixed are refused, and a CSP backs it up.
A link to a project page has to survive being opened by a crawler, an email client preview, or someone with scripts off. Nothing under the published page may be a client component, which also means the feedback forms are plain posts.
The first real sign-in failed because the account predated email verification, and the form said only that the credentials did not match — sending you to reset a password that was never the problem. It now recognises an unconfirmed address, resends the link, and says so.
Pushed to a private repository at mcinnisdev/ticulate — 15 commits, no environment files tracked. The Vercel project is the next step, with the environment variables and Cloudflare DNS steps written down in DEPLOY.md.
Resend is wired up and sending as ticulate.com, with three templates written for mail clients rather than browsers. Password reset is a complete flow including expired-link recovery and single-use tokens. Adding a stakeholder with an email address now actually tells them, which it never did before.
Features and tasks take a question. Setting one flags the item, shows the question on the thing it is about, banners it on the overview, and returns the answer in the next project.resume. It exists because the alternative is an agent picking silently and being wrong, or asking in a chat that ends.
The homepage still carried the design kit's copy: a testimonial from an invented person at an invented company, a showcase of customers that do not exist, and a $12 seat for a product with no billing. All removed. Pricing says free while in beta, the only example shown is this page, and an audit script now fails the build-adjacent check if invented people, unbuyable plans or dead links come back.
Build work was being filed as features, which buried the things stakeholders are meant to react to. Tasks are now their own shape with their own home under Activity. The workspace gained a Features tab with edit, delete and move-to-tasks, a task list, and editable project details and purpose — so anything an agent gets wrong can be corrected by hand.
Same code path as MCP, different door.
Deployment and the design-system port were filed as features, which put build work in front of the people being asked to review capabilities. Tasks are now their own thing, shown under Activity, and features are only what someone could have an opinion about.
This page was created by an agent calling the documented fallback rather than the MCP endpoint — the first real use of either, and the first project in the workspace.
Purpose, architecture, roadmap and theme are read-modify-write, so two agents on one project lost whichever wrote first. Those calls now take the revision you resumed at and refuse a stale write with a recoverable error.
Feedback can now be left from wherever the opinion forms — the header of every section, roadmap items, architecture open questions — and answered from the workspace, with the reply and its state appearing where the person left it. Promoting to the roadmap keeps the trace back to who asked.