Skip to content

feat(hq): port intro and decision cues - #326

Merged
mergify[bot] merged 2 commits into
mainfrom
codex/hq2-03b-intro-decision
Oct 4, 2026
Merged

mergify[bot] merged 2 commits into
mainfrom
codex/hq2-03b-intro-decision

Conversation

@Cuarroc

@Cuarroc Cuarroc commented Oct 4, 2026 •

Copy link
Copy Markdown
Owner

Die Studio-Richtung enthält jetzt den kurzen Einstieg aus der Demo. Die Entscheidungsbox „Dein Urteil ist gefragt“ ist in beiden Studio-Konzepten sichtbar. Beide Elemente funktionieren in Hell und Dunkel und sind mit der Tastatur erreichbar.

Report

What changed

  • Ported the approved demo intro bar and the exact German decision prompt into hq2-studio.html and hq2-concept.html.
  • Reused the Studio render lifecycle at docs/dev-hq/concepts/studio-workspace.js:248 to show the decision only in the overview and the existing event binding pattern at studio-workspace.js:409 for both buttons.
  • Reused the shared Amber, surface, shadow, and focus tokens from studio-tokens.css:18-32 and the global focus rule at studio-tokens.css:61; no colour literals or second state pattern were added.
  • Added a red-first concept contract covering exact copy, semantic buttons, token-only styles, overview visibility, and dismissal.

Evidence

  • Base: origin/main 8e439b51606b4a8ecd321ad055d8f8e482494c30; prerequisite PR feat(hq2): shared light/dark design tokens for Studio concept (HQ2-03a) #311 observed merged as 5ebb7b6697dca094b1cf7a6898c86a5e104726f2.
  • node --test --test-name-pattern="intro bar and design decision preserve the approved accessible token contract" scripts/lib/hq-studio-ui.test.mjs before implementation: exit 1 (missing approved intro/decision markup).
  • bash scripts/ci/red-first.sh: exit 0; the exact named test is absent/red at the base and green at the head.
  • node scripts/contrast-check.mjs: exit 0; 352 light, dark, and increased-contrast pairings passed.
  • npm run test:hq: exit 0; 516 tests passed.
  • Playwright 1.62.1 / installed Chromium headless screenshots in light and dark, plus keyboard-focused #review: exit 0; inspected directly. The box and intro bar are readable in both schemes and the focus ring is clearly visible.
  • bash scripts/ci/gates.sh lane prepush: exit 0 at final committed HEAD; 1722 Rust tests passed, 7 skipped.
  • git ls-remote --heads origin codex/hq2-03b-intro-decision: remote SHA 1d84765905ae810bbedc4a8047bfd9d33584a751, matching final HEAD.
  • Diff size: 5 files, 51 insertions, 3 deletions.

NICHT ABGEDECKT

  • Linux does not compile or run the #[cfg(windows)] tests or the Windows clippy arms; the Windows lane runs in the merge queue.
  • The installed desktop app was not launched; visual evidence covers the checked-in Studio concept in installed Playwright/Chromium, light and dark.
  • External services and release verification are outside this package.

Review

Review: Tier B, independent reviewer Claude Sonnet 5.5 (Anthropic; author family: codex), candidate 1d84765.

Review disposition

  • No findings. Checked: [hidden]{display:none!important} exists in studio-workspace.css and hq2-concept.html, so .design-decision/.guidance with display:flex still hide. Tokens --amber-wash, --warn, --radius, --shadow, --space-3 exist in studio-tokens.css, and hq2-concept.html links that file. notice and the data-go handler exist. node --test scripts/lib/hq-studio-ui.test.mjs exit 0 (18 pass). CI checks green.
  • Architecture drift: none. No new state pattern, IPC, or Rust change; the existing render/on() pattern is reused.

Open points

  • Coordinator review and the Windows merge-queue lane remain pending.

Cuarroc and others added 2 commits October 4, 2026 18:10
Test-First: scripts/lib/hq-studio-ui.test.mjs::intro bar and design decision preserve the approved accessible token contract

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
Test-First: scripts/lib/hq-studio-ui.test.mjs::intro bar and design decision preserve the approved accessible token contract

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
@Cuarroc
Cuarroc marked this pull request as ready for review October 4, 2026 16:35
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-04T16:40:05.039466Z 1d84765 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1d84765905

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

<nav class="nav" aria-label="Arbeitsbereiche"><div class="nav-group">Steuern</div><button data-view="overview" aria-current="page"> Cockpit</button><button data-view="work"> Aufträge <span class="count" id="work-count">3</span></button><button data-view="fleet"> Agenten</button><button data-view="decisions"> Entscheidungen <span class="count" id="decision-count">1</span></button><div class="nav-group">Wissen & Modelle</div><button data-view="knowledge"> Kontext</button><button data-view="chat"> Code-Chat</button><button data-view="capacity"> Kapazität</button><div class="nav-group">System</div><button data-view="settings"> Einstellungen</button><p class="nav-foot">Ein Auftrag · ein Agent · ein Worktree<br>Belege vor Freigaben<br><br>Basis: ProjectA v1.4.1</p></nav>
<main id="main" tabindex="-1">
<section class="section" id="overview"><div class="eyebrow">Projektcockpit / Heute</div><div class="heading"><div><h1 id="hero-title">ProjectA im Blick.</h1><p class="lead">Erkenne Engpässe, steuere die nächste sinnvolle Arbeit und gib Agenten nur belegten Kontext.</p></div><div class="actions"><button class="btn" id="new-project">+ Projekt</button><button class="btn primary" data-go="work">Auftrag planen →</button></div></div><div class="grid"><div class="card span-3"><div class="metric" id="metric-work">0</div><div class="metric-label">offene Aufträge</div><div class="metric-detail">Aus dem Demo-Projektmodell</div></div><div class="card span-3"><div class="metric" id="metric-blocked">0</div><div class="metric-label">mit Abhängigkeit</div><div class="metric-detail">Start erst nach Nachweis</div></div><div class="card span-3"><div class="metric" id="metric-evidence">0</div><div class="metric-label">Quellen im Kontext</div><div class="metric-detail">Mit Herkunft und Status</div></div><div class="card span-3"><div class="metric" id="metric-decisions">0</div><div class="metric-label">offene Entscheidungen</div><div class="metric-detail">Menschliche Freigabe</div></div><div class="card span-7"><div class="card-head"><h2>Als Nächstes</h2><button class="btn small ghost" data-go="work">Alle Aufträge</button></div><div class="list" id="next-list"></div></div><div class="card span-5"><div class="card-head"><h2>Entscheidung mit Belegen</h2><span class="status warn">Prüfen</span></div><h3 id="focus-decision">Multi-Harness-Abnahme</h3><p class="micro" id="focus-explain">Bevor Modelle autonom arbeiten, müssen Zustellung und Recovery nachgewiesen sein.</p><div class="callout warn"><strong>Was fehlt?</strong><p id="focus-missing">F-CORE-3 → F6 → Multi-Harness. Ein Profil ist kein Laufzeitbeleg.</p></div><button class="btn small" data-go="decisions" style="margin-top:14px">Belege und Optionen prüfen</button></div><div class="card span-7"><div class="card-head"><h2>Arbeitskette</h2><span class="micro">Simulierte Abnahmefolge</span></div><div class="steps" id="step-list"></div></div><div class="card span-5"><div class="card-head"><h2>Agentenbriefing</h2><button class="btn small ghost" data-go="knowledge">Kontext öffnen</button></div><p class="micro">Ziel · Blocker · relevante Quellen · offene Unsicherheit</p><div class="callout"><strong id="brief-head">Projektkontext</strong><p id="brief-preview">Wähle einen Auftrag, um ein kurzes Briefing zu sehen.</p></div><button class="btn small" id="copy-brief" style="margin-top:13px">Briefing kopieren</button></div></div></section>
<section class="section" id="overview"><div class="eyebrow">Projektcockpit / Heute</div><div class="heading"><div><h1 id="hero-title">ProjectA im Blick.</h1><p class="lead">Erkenne Engpässe, steuere die nächste sinnvolle Arbeit und gib Agenten nur belegten Kontext.</p></div><div class="actions"><button class="btn" id="new-project">+ Projekt</button><button class="btn primary" data-go="work">Auftrag planen →</button></div></div><div class="design-decision" id="design-decision"><div><strong>Dein Urteil ist gefragt</strong><p>Die Demo bestimmt die visuelle Richtung, bevor sie in die installierte App übernommen wird.</p></div><button class="btn" id="review" type="button" data-go="decisions">Design prüfen</button></div><div class="grid"><div class="card span-3"><div class="metric" id="metric-work">0</div><div class="metric-label">offene Aufträge</div><div class="metric-detail">Aus dem Demo-Projektmodell</div></div><div class="card span-3"><div class="metric" id="metric-blocked">0</div><div class="metric-label">mit Abhängigkeit</div><div class="metric-detail">Start erst nach Nachweis</div></div><div class="card span-3"><div class="metric" id="metric-evidence">0</div><div class="metric-label">Quellen im Kontext</div><div class="metric-detail">Mit Herkunft und Status</div></div><div class="card span-3"><div class="metric" id="metric-decisions">0</div><div class="metric-label">offene Entscheidungen</div><div class="metric-detail">Menschliche Freigabe</div></div><div class="card span-7"><div class="card-head"><h2>Als Nächstes</h2><button class="btn small ghost" data-go="work">Alle Aufträge</button></div><div class="list" id="next-list"></div></div><div class="card span-5"><div class="card-head"><h2>Entscheidung mit Belegen</h2><span class="status warn">Prüfen</span></div><h3 id="focus-decision">Multi-Harness-Abnahme</h3><p class="micro" id="focus-explain">Bevor Modelle autonom arbeiten, müssen Zustellung und Recovery nachgewiesen sein.</p><div class="callout warn"><strong>Was fehlt?</strong><p id="focus-missing">F-CORE-3 → F6 → Multi-Harness. Ein Profil ist kein Laufzeitbeleg.</p></div><button class="btn small" data-go="decisions" style="margin-top:14px">Belege und Optionen prüfen</button></div><div class="card span-7"><div class="card-head"><h2>Arbeitskette</h2><span class="micro">Simulierte Abnahmefolge</span></div><div class="steps" id="step-list"></div></div><div class="card span-5"><div class="card-head"><h2>Agentenbriefing</h2><button class="btn small ghost" data-go="knowledge">Kontext öffnen</button></div><p class="micro">Ziel · Blocker · relevante Quellen · offene Unsicherheit</p><div class="callout"><strong id="brief-head">Projektkontext</strong><p id="brief-preview">Wähle einen Auftrag, um ein kurzes Briefing zu sehen.</p></div><button class="btn small" id="copy-brief" style="margin-top:13px">Briefing kopieren</button></div></div></section>

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Route the design CTA to the design review

When a user clicks the new Design prüfen button in hq2-concept.html, data-go="decisions" is handled by the generic navigation binding and opens the existing “Multi-Harness für ProjectA” decision screen rather than any design-review instructions or evidence. The approved demo instead populates a dedicated “Dein Review” checklist, so this CTA should invoke equivalent design-specific content rather than the unrelated product-decision view.

Useful? React with 👍 / 👎.

}
document.querySelectorAll('nav [data-view]').forEach(b => b.onclick = () => show(b.dataset.view));
$('.brand')?.addEventListener('click', e => { e.preventDefault(); show('overview'); });
on('hide-guide', () => { $('#guidance').hidden = true; });

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Restore focus after dismissing the guide

When a keyboard user activates Ausblenden, this handler hides the guide while focus is still on #hide-guide, leaving focus in a removed-from-layout subtree and causing subsequent keyboard navigation to restart unpredictably. The other Studio concept already handles this case by moving focus to the active navigation button, so the workspace handler should likewise place focus on a stable visible control before or immediately after hiding the guide.

Useful? React with 👍 / 👎.

@mergify

mergify Bot commented Oct 4, 2026 •

Copy link
Copy Markdown
Contributor

Queued — the merge queue status continues in this comment ↓.

@Cuarroc

Cuarroc commented Oct 4, 2026

Copy link
Copy Markdown
Owner Author

@Mergifyio queue

@mergify mergify Bot added the queued label Oct 4, 2026
@mergify
mergify Bot merged commit c09583b into main Oct 4, 2026
15 checks passed
@mergify

mergify Bot commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

Merge Queue Status

This pull request spent 41 minutes 3 seconds in the queue, including 12 minutes 57 seconds running CI.

Required conditions to merge

@mergify
mergify Bot deleted the codex/hq2-03b-intro-decision branch October 4, 2026 17:26
@mergify mergify Bot removed the queued label Oct 4, 2026
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.

1 participant