Skip to content

docs(blueprints): screen specs, wireframes and component inventory - #146

Merged
Pericena merged 2 commits into
mainfrom
docs/23-screen-specs
Oct 9, 2026
Merged

Pericena merged 2 commits into
mainfrom
docs/23-screen-specs

Conversation

@Pericena

@Pericena Pericena commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Refs #23

What

  • docs/blueprints/screens.md: one section per screen ID of docs: MVP user flows #22 (S01–S10), each with:
    • its purpose and flows;
    • the data shown, named as in docs/domain/model.md;
    • the loading, empty, error and success states;
    • the actions and where they lead;
    • the components it uses.
  • Component inventory: every atom, molecule and organism in puls3_flutter/lib/src/ui, with the screens that use it.
  • docs/blueprints/wireframes/: 32 PNGs.
    • Desktop (1440 px) and mobile (390 px) for every screen.
    • Loading, empty and error wireframes for S02 and S03.
    • Rendered by puls3_flutter/tool/wireframes, which lives outside flutter test, so CI does not run it: built screens use the app with fake data; S05, S06 and S10 are drawn from the same components after F6/F7.
    • The test font draws text as blocks, so they read as low-to-mid fidelity wireframes.
  • flows.md links the specs and marks S09 as built (feat: wallet connection in Flutter app #25).

Wireframes: the PNGs in docs/blueprints/wireframes/ . @TOMOKI977, let me know if you still need one.

How to verify

  • Compare the screen IDs in flows.md with docs/blueprints/wireframes/: every ID has -1440 and -390.
  • For S02, S03 and S07, check the 4 states in screens.md and that the field names match docs/domain/model.md.
  • Regenerate the PNGs: cd puls3_flutter && flutter test tool/wireframes/wireframes_test.dart --update-goldens

Frontend owner sign-off

As the frontend owner, I confirm these specs are enough to build every screen without design questions.

Refs #23.

- docs/blueprints/screens.md: one section per screen ID of #22 (S01 to
  S10) with its purpose and flows, the data shown named as in
  docs/domain/model.md, the loading, empty, error and success states, the
  actions and where they lead, and the components it uses.
- Component inventory: every reusable atom, molecule and organism of
  puls3_flutter/lib/src/ui, with the screens that use it.
- docs/blueprints/wireframes: 32 PNGs, desktop (1440 px) and mobile
  (390 px) for every screen, plus loading, empty and error for S02 and
  S03. They are rendered by puls3_flutter/tool/wireframes (outside
  flutter test, so CI does not run them): built screens from the app
  with fake data, S05, S06 and S10 from the same components after F6 and
  F7. The test font draws text as blocks, so they read as low to mid
  fidelity wireframes.
- flows.md links the specs and marks S09 as built (#25).

The Figma link is left for the frontend owner to add.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Pericena Pericena self-assigned this Oct 9, 2026

@XxHugheadxX XxHugheadxX left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved as a partial delivery of #23 (Refs #23).

  • screens.md: it covers S01–S10 with purpose, flows, data, the 4 states, actions and components.
  • Names:
    • the data fields match docs/domain/model.md, including Hire.runtimeStatus and Hire.failureReason;
    • S05 and S06 use the ADR-0005 states and the approve, reject and refund actions from the updated flows (#140);
    • a reject from open reads "Cancelled".
  • Wireframes: every screen ID has -1440 and -390 PNGs, and they come from the real components.

Before #23 can close:

  • The Figma link is still an acceptance criterion of #23 and isn't here. Either add it, or agree on the issue to drop it in favour of the generated PNGs.
  • Unreadable labels in the wireframes. The test font (Ahem) draws every glyph as a block, so no label can be read. For example, S06 doesn't show which button is Approve and which is Reject. Loading the app's real fonts in tool/wireframes before rendering would make them readable, and it fits "low to mid fidelity". The goldens can do that with FontLoader and the bundled font files.
  • Missing state wireframes. The other screens (S04–S10) document their loading, empty and error states in text only. That's allowed ("its own wireframe or a clear note"), but for S06 the states matter most, so one wireframe for its failed-run and approval-deadline states would help.

Review of #146.

- The wireframe tool loads Roboto and the Material icons from the
  Flutter SDK (and the app's Doto), so every label reads instead of the
  test font's blocks. Puls3Fonts names an offline family (Roboto) for
  styles while Google Fonts are off; the app itself is unchanged, and
  tests keep the test font because they never load it.
- S06 gets its failed-run and deadline-passed wireframes at both
  widths, linked from its states in screens.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Deploying puls3 with  Cloudflare Pages  Cloudflare Pages

Latest commit: 16472d4
Status: ✅  Deploy successful!
Preview URL: https://728b0963.puls3-4lw.pages.dev
Branch Preview URL: https://docs-23-screen-specs.puls3-4lw.pages.dev

View logs

@Pericena

Pericena commented Oct 9, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the review! Done in 16472d4:

  • Readable labels: the wireframe tool now loads Roboto and the Material icons from the Flutter SDK (and the app's Doto), so every label reads (S06 shows Approve and Reject and refund).
  • S06 states: new failed-run and deadline-passed wireframes at 1440 and 390 px, linked from its states in screens.md.

On Figma: I'll ask on #23 whether the generated PNGs can replace it, since they're regenerated from the app with one command and stay in sync with the code.

@Pericena
Pericena merged commit c64cb2c into main Oct 9, 2026
10 checks passed
@Pericena
Pericena deleted the docs/23-screen-specs branch October 9, 2026 18:04
TOMOKI977 added a commit that referenced this pull request Oct 11, 2026
…sion, my agents) and S11/S12 specs and wireframes (#36) (#161)

flows.md:
- F8 create and save a draft (saveDraft, StudioDraft.revision;
  InvalidManifest, DraftVersionConflict, DraftNotOwned, no answer);
- F9 test run in the playground (testRun, TestRunResult.output and
  remainingDailyRuns; TestQuotaExceeded, AgentExecutionFailed,
  RuntimeUnavailable, InputTooLong);
- F10 edit a deployed agent: version n+1 keeps the agent id and wallet,
  the builder signs the manifestHash/manifestVersion update, hires in
  flight keep version n (spike #33 section 4);
- F11 my agents: drafts, deploying or failed (resume at retryFromStep),
  live (view, edit).
F4 (deploy) is unchanged; the coverage and screen ID tables list the new
flows and screens.

screens.md:
- S11-playground and S12-my-agents with data named after AgentManifest,
  StudioDraft, TestRunResult and DeploySession, the 4 states, actions and
  components;
- S07/S08 list the flows they now serve;
- the component inventory adds PlaygroundPanel, TestRunResultCard,
  MyAgentsList and AgentVersionRow.

wireframes: S11 and S12 at 1440 and 390, in the #146 style.

Co-authored-by: Julio Cesar Severiche Orellana <39506930+TOMOKI977@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants