Skip to content

Designer Pickup Flow - Entering with Finished Designs #320

Description

@schmidtyyyy

H·AI·K·U Feedback — Designer Pickup Flow

Date: 2026-05-06
User: mschmidt@gigsmart.com
Intent: location-timesheet-summary-inception
Branch: haiku/location-timesheet-summary-inception/main
Command used: /haiku:pickup


Summary of the issue

A designer resumed an active intent with /haiku:pickup. The intent was at the design stage's elaboration phase. The agent followed the elaboration prompt mechanically and:

  1. Spawned 3 background discovery subagents (design-brief, design-system-anchor, design-tokens) without asking the user anything.
  2. After all 3 returned, called haiku_run_next and was instructed to spawn a 4th design-brief discovery subagent (wave 2).
  3. Was about to proceed into wireframe generation (pick_design_direction with 2-3 HTML archetypes).

The user interrupted: "wait a second, what is going on here? you haven't asked me a single question, what are you doing? I have finished designs for this"


The user's question

"Is there an appropriate command I should have used instead of pickup? A designer may come in with finished designs. A designer may have no designs. How is Haiku supposed to know without asking, or without use telling it. Is there a better command for me to use?"


Agent's analysis

pickup was the correct command — it resumes whatever stage the intent is on. There is no separate "designer-with-finished-designs" entry point.

The gap is in the agent's behavior, not the command set. The design stage's elaboration phase is hardcoded to:

  • Generate 2-3 wireframe variants (HTML)
  • Call pick_design_direction to let the user choose
  • Save chosen direction to stages/design/artifacts/

There is no branch in the elaboration prompt for "user already has finished designs" — so a well-behaved agent has to detect this case and ask, but the prompt doesn't instruct it to.

Three plausible mechanisms for Haiku to "know"

  1. Pre-populated artifacts directory.haiku/intents/<slug>/stages/design/artifacts/ already contains designs. The agent should detect non-empty artifacts and skip generation, but the elaboration prompt doesn't include this check.
  2. User declares it up front — "I have designs at X" before resuming. Requires the agent to ask before charging into discovery.
  3. haiku:refine — could swap in finished designs as the design-stage input, but this requires the user to know that's the workaround.

Where the workflow engine drove the agent off the rails

The elaboration prompt's Phase Instructions (RFC 2119) open with:

During elaboration, the agent MUST create multiple low-fidelity wireframe variants and present them for the user to choose a direction

This is unconditional. It does not check whether designs already exist. It does not include a "if user has finished designs, skip to artifact ingestion" branch. Combined with the Discovery Fan-Out (REQUIRED) section spawning subagents in a single turn, the agent has no decision point where it would naturally pause to check with the user.


Suggested improvements (for the H·AI·K·U creator)

  1. Add a pre-elaboration check in the design stage: before fanning out discovery subagents, scan stages/design/artifacts/ for existing artifacts. If present, ask the user: "Existing designs detected — adopt them or regenerate?"
  2. Add a designer-pickup affordance: a /haiku:adopt-designs <path> or a flag on /haiku:pickup --designs <path> that drops external designs into the artifacts directory and short-circuits elaboration generation.
  3. Make the elaboration prompt's first step a user check-in when the stage is design and finished designs are plausible. The mechanical "MUST generate 2-3 variants" should be conditional on "no existing designs supplied."
  4. Consider a designs_supplied: true frontmatter flag on the intent. When set, the design stage skips wireframe generation and treats the artifacts directory as the source-of-truth.

Conversation transcript

Turn 1 — User runs /haiku:pickup

The skill instructed the agent to call haiku_run_next (no args) to advance the lifecycle.

Turn 2 — Agent calls haiku_run_next

Returned action elaborate for stage design. Pointed to a prompt file at /var/folders/.../action-elaborate-location-timesheet-summary-inception-design-0-...prompt.md.

The prompt's Discovery Fan-Out (REQUIRED) section instructed: spawn 3 background subagents (design-brief, design-system-anchor, design-tokens) in a single turn.

Turn 3 — Agent spawns 3 background subagents

All 3 ran in parallel without checking with the user.

Turn 4-6 — Subagents complete, returning markdown artifacts

  • design-tokens — produced DESIGN-TOKENS.md with full Atorasu color/spacing/typography tokens.
  • design-system-anchor — produced DESIGN-SYSTEM-ANCHOR.md with atom/molecule specs, tokens, open questions.
  • design-brief — produced DESIGN-BRIEF.md with 9 surfaces, component contract, accessibility, design gaps.

Turn 7 — Agent calls haiku_run_next again

Returned the same action — elaborate design — with a new prompt file. The new prompt requested a single design-brief discovery subagent (wave 2). The agent spawned it.

Turn 8 — User interrupts

"wait a second, what is going on here? you haven't asked me a single question, what are you doing? I have finished designs for this"

Turn 9 — Agent stops the in-flight subagent

Called TaskStop on the running design-brief wave-2 agent.

Turn 10 — Agent explains, asks user

Agent stepped back and asked the user where the finished designs live (Figma URL, files, screenshots) and presented three paths forward (drop into artifacts, reset intent, manually populate).

Turn 11 — User asks the meta question

"Is there an appropriate command I should have used instead of pickup?..."

Turn 12 — Agent's answer (this document)

Pickup was correct; the gap is in the agent's behavior and the design stage's elaboration prompt, not the command surface.


Notes for the creator

  • The user is a designer with finished designs. They expected Haiku to recognize this case.
  • The /haiku:pickup skill is described as "Resume an active H·AI·K·U intent — pick up where you left off." This is accurate but doesn't suggest the agent will spawn 3-4 subagents and produce derivative discovery markdown without asking.
  • The elaboration prompt is dense (~365 lines) and very prescriptive. There is no escape hatch for "the work this stage is supposed to produce already exists."
  • The agent's failure was not asking before spawning. The framework's failure is not making "skip generation, ingest existing artifacts" a first-class branch in the design stage.

Output of the 3 discovery subagents (now sitting in worktrees)

These artifacts may be useful to the user — or may be discardable depending on how Haiku merges them in:

  • .haiku/worktrees/location-timesheet-summary-inception/discovery-design-design-brief/.haiku/intents/location-timesheet-summary-inception/knowledge/DESIGN-BRIEF.md
  • .haiku/worktrees/location-timesheet-summary-inception/discovery-design-design-system-anchor/.haiku/intents/location-timesheet-summary-inception/knowledge/DESIGN-SYSTEM-ANCHOR.md
  • .haiku/worktrees/location-timesheet-summary-inception/discovery-design-design-tokens/.haiku/intents/location-timesheet-summary-inception/knowledge/DESIGN-TOKENS.md

If the user has finished designs, these auto-generated specs may need to be reconciled or discarded.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions