Talk
Stream

The first version, as one self-contained page. It greets the user with hallway.user(). At the top are a display name and a one-line tagline. Below them are six category sections. Food, Media, Language, Accessibility and Notifications each have a likes/needs box and a dislikes/avoid box. Never Show Me has a single list. Edits autosave to hallway.save('dossier') after a short pause, and the data loads with hallway.load on start. A live preview card sits on the right, stacking below the form on mobile. It uses emoji or CSS icons and hides empty categories. There are four starter templates that ask for confirmation before overwriting. Exports are Copy JSON, Download .json and Copy AI Brief, which is natural plain text. Reset asks for confirmation. The page must be keyboard accessible, with labelled inputs and visible focus.

Discussion

  1. Hallway Studio

    A single self-contained page. - Greet the user with hallway.user() ("Hi, Sam"). - Form with 6 category sections: Food, Media, Language, Accessibility, Notifications, Never Show Me. Each section has a free-text "likes/needs" box and a "dislikes/avoid" box. Never Show Me has a single list. Add a display name and a one-line tagline at the top. - Autosave to hallway.save('dossier', data) when you edit (debounced), and load with hallway.load on start. - A live preview card on the right (stacked below on mobile) with clear typography, category icons drawn in CSS or emoji, and empty categories hidden. - A template picker with 4 starters (Low-Sensory, Busy Parent, Polyglot Foodie, Screen-Reader User). It asks for confirmation before overwriting. - Export buttons: Copy JSON, Download .json, and Copy AI Brief. The brief is plain text like "About me: ... Please avoid: ...". - A Reset button with confirmation. Acceptance: edits survive a reload; the card updates as you type; the copied JSON parses; the AI brief reads naturally; the page works with the keyboard and has visible focus and labelled inputs. The original idea, in the owner's words: “Self Dossier: Write the profile you wish apps knew about you (tastes, dislikes, accessibility needs) and export it as a shareable card or JSON. A form with categories (food, media, language, accessibility, notifications, never-show-me). Saves to localStorage, previews as a styled card, and exports JSON or plain text for pasting into AI chats. Includes a few starter templates.”

  2. PM

    This is a clear spec, so it's planned as the first version of Kindly Noted. It covers the form, autosave with hallway.save/load, the live card, the four templates, the three exports and reset. Nothing is built yet. The work will be checked against your acceptance list. Queued for implementation in an isolated workspace. I’ll report the checks and a pull request here.

  3. PM

    Implemented in pull request #1. The project build and tests passed in the isolated workspace. I've built the first version of Kindly Noted as one self-contained `dist/index.html` (49 KB, no network requests). `npm run build` succeeds and `npm test` passes 19 of 19, stable over five runs. Nothing is committed; the platform handles that. **What's on the page** - **Greeting:** "Hi, Sam" from `hallway.user()`, or "Hi there" when no one is signed in. - **Form:** display name and one-line tagline at the top. Food, Media, Language, Accessibility and Notifications each have a "Likes / needs" and a "Dislikes / avoid" box; Never Show Me has a single list (one item per line). A row of chips jumps to each section and shows a dot once it's filled in. - **Saving:** - Edits save 0.7 seconds after you stop typing, and the data loads on start. A small status in the header shows "Editing…", "Saving…" or "Saved". - The request said `hallway.save('dossier', data)`, but Hallway's actual signature takes the data first, so the call is `hallway.save(data, 'dossier')` with `hallway.load('dossier')`. - Opened as a local file, the page still works but says it isn't saving. - **Preview card:** sits on the right and updates as you type. It has emoji icons in coloured badges, "Yes, please" and "No, thanks" lists, and Never Show Me as pills. Empty categories are hidden. Below 720px wide the card moves under the form; each panel scrolls inside itself, so the page never does. - **Templates and Reset:** Low-Sensory, Busy Parent, Polyglot Foodie and Screen-Reader User. Choosing one, or pressing Reset, opens a confirmation dialog where Cancel has focus and Escape cancels. - **Exports:** - **Copy JSON** and **Download .json** include every field. - **Copy AI Brief** gives plain text like "About me: My name is Robin… Food: I enjoy spicy noodles and green tea. Please avoid: cilantro." with empty sections left out. - If the frame blocks the clipboard, the text opens already selected in a dialog for manual copying. - **Accessibility:** every input has a label (screen readers hear the category too, e.g. "Food: Likes / needs"), and focus shows a 3px blue outline everywhere. **What I checked** - **Browser tests** run against the built page with a stand-in `window.hallway`. They cover: - the greeting, and edits coming back after a reload - saving after a pause rather than on every keystroke - live preview updates and hidden empty categories - side-by-side vs. stacked layout and no page scroll at 4 sizes - JSON from both Copy and Download parsing with all fields - the exact brief text - confirm/cancel for all 4 templates and Reset - labels on every input, and a visible outline at every Tab stop - a full keyboard-only template flow - running with no `window.hallway` - **Unit tests** cover the JSON round-trip, the brief wording and the templates. - **Screenshots:** I reviewed the empty, half-filled and full states plus the dialogs at 1440x900, 920x575 and 390x844, and extra sizes at 360x640, 740x360 and 1024x768. They led to these fixes: - sideways overflow at the stream-card size - text boxes cutting off their content - a greeting truncated on small phones - cramped export buttons in landscape - the brief keeping capitals mid-sentence ("Shellfish") The cover image is saved at `/tmp/projex-shots/cover-1440x900.png` (Screen-Reader User template filled in). Running locally, its header reads "Preview only, not saved"; on Hallway that spot shows the real save status. Two limits: the brief's capitalisation relies on a built-in list of languages, nationalities, days and months, so an unusual proper noun at the start of a line may come out lowercase. And the Download button depends on the Hallway frame allowing downloads, which I couldn't test locally. Verification and merge follow the project’s auto-merge setting. You can follow the pull request in the Code tab.

  4. PM

    Auto-merged pull request #1 after a fresh build and test run against the latest main branch. Automatic publishing will follow when enabled and hosting is connected; the live release status appears here.

  5. PM

    Published: https://projex.fly.dev/play/project_c3c1e3ed-8be — fresh build and tests passed, stored content verified, commit 4ad7ec9. This is the platform-built version.

Log in to add to the discussion.

Kindly Noted · Kindly Noted · Hallway