fix(onboarding): UX polish — build mode, domain-neutral descriptions, editable handoff - #512

Merged
jeonghun-jj-lee merged 2 commits into
mainfrom
fix/onboarding-ux-polish
Aug 22, 2026
Merged

fix(onboarding): UX polish — build mode, domain-neutral descriptions, editable handoff#512
jeonghun-jj-lee merged 2 commits into
mainfrom
fix/onboarding-ux-polish

Conversation

@jeonghun-jj-lee

@jeonghun-jj-leejeonghun-jj-lee commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Three onboarding UX fixes plus one new capability:

1. Sessions start in build mode (not plan)

Onboarding needs tool execution from the start — the interview calls amicode_profile, question, etc. Opening in plan mode forced users to manually switch before anything worked.

2. Domain-neutral option descriptions on intent choices

Added choice_descriptions to the score schema so the compiler renders explicit descriptions alongside option labels. The LLM uses these verbatim instead of inventing quantum-specific ones from the surrounding context.

  • "Write code, refactor, debug, and build software"
  • "Run automated experiment loops and extract insights from results"
  • "See what Amicode can do"

3. Handoff: editable description confirmation (not a dead-end question)

The handoff stage now presents the auto-generated "About you" description in a pre-filled editable text field (via the new default field on the question tool). The user can accept or edit before submitting.

Old choices ("Let's dive into my first task" / "Show me around first") are removed — they had no downstream behavior.

4. Split research_area into two questions

"What research areas?" and "What kind of experiments?" are now asked back-to-back instead of as one combined question.

Depends on

Verification

  • 1240/1240 tests pass
  • Golden files regenerated

Summary by CodeRabbit

  • New Features
    • New sessions now start in an execution-ready mode, allowing onboarding tasks to proceed immediately.
    • Onboarding intent options now include helpful descriptions.
    • Research setup is clearer with separate questions for research area and experiment type.
    • Handoff now presents an editable, automatically generated description.
  • Improvements
    • After onboarding is completed, users are guided to start a new session.
    • Retired session-agent options remain unavailable.

…rminal handoff, split research questions
- default_agent: plan → build (onboarding needs tool execution from the start)
- Add choice_descriptions to score schema + compiler; intent options now carry
explicit domain-neutral descriptions so the LLM doesn't invent quantum-specific ones
- Handoff stage is now a terminal message ('Onboarding finished! Please start a
new session to begin.') with no choices
- Split research_area into two back-to-back questions: 'What research areas?'
and 'What kind of experiments?'
- Regenerated golden files
…andoff
The handoff stage now presents the auto-generated description in an
editable text field (using the new question tool `default` field from
the opencode fork) so the user can review and modify before it's saved.
Requires: harmoniqs/opencode@question-text-default (adds `default`
field to question schema for pre-filled text inputs).
@jeonghun-jj-lee
jeonghun-jj-lee merged commit 82677f0 into mainAug 22, 2026
6 of 7 checks passed
@coderabbitai

coderabbitaiBot commented Aug 22, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 42c7b280-da67-40e6-a541-fa550cb3a707

📥 Commits

Reviewing files that changed from the base of the PR and between 8215f9d and a4f12ff.

📒 Files selected for processing (8)
  • AGENTS.md
  • packages/extension/scores/overture/SCORE.md
  • packages/extension/src/opencode_config.ts
  • packages/extension/src/scores/compiler.ts
  • packages/extension/src/scores/schema.ts
  • packages/extension/test/opencode_config.test.ts
  • packages/extension/test/scores/golden/compile-chained.md
  • packages/extension/test/scores/overture_rewrite.test.ts

📝 Walkthrough

Walkthrough

The PR changes new-session defaults from plan to build and updates Overture onboarding to collect structured research data and an editable generated description. Choice descriptions, compiled output, documentation, and tests reflect the new flow.

Changes

Onboarding updates

Layer / File(s)Summary
Score contract and choice rendering
packages/extension/src/scores/schema.ts, packages/extension/src/scores/compiler.ts, packages/extension/test/scores/overture_rewrite.test.ts
Question supports optional choice descriptions. The compiler renders descriptions with matching choices. Tests verify the output.
Overture interview stages
packages/extension/scores/overture/SCORE.md, packages/extension/test/scores/golden/compile-chained.md, packages/extension/test/scores/overture_rewrite.test.ts
The research stage records research_area and experiment_kind separately. The handoff stage uses an editable, prefilled description, records completion, and instructs the user to start a new session.
Build-first agent configuration
AGENTS.md, packages/extension/src/opencode_config.ts, packages/extension/test/opencode_config.test.ts
New sessions default to build. The plan/build picker and removal of pulse-designer remain unchanged.

Estimated code review effort: 2 (Simple) | ~10 minutes

Sequence Diagram(s)

sequenceDiagram
participant Overture onboarding
participant Score compiler
participant OpenCode session
Overture onboarding->>Score compiler: submit intent and research answers
Score compiler->>OpenCode session: generate interview instructions
OpenCode session->>OpenCode session: save edited description and completion marker
OpenCode session->>OpenCode session: start a new build session
Loading

Suggested reviewers:aarontrowbridge, rchari1

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/onboarding-ux-polish

Comment @coderabbitai help to get the list of available commands.

aarontrowbridge added a commit that referenced this pull request Aug 23, 2026
…pest domain (#515)
The template opened 'You are Amico — Amicode's pulse-design copilot' while
the same prompt's error-corrected-loop section said 'research studio, not
a single-purpose copilot' and the overture had already been rewritten to
'coding and research companion' (tests assert the pulse phrasing is
gone). The identity block was the straggler — and it mis-framed every
session for users whose field isn't pulses.
New identity: autoresearch copilot — the loop first (campaigns,
hypotheses, spec gates, experiments, mechanical verdicts) plus the dev
work it needs (issues, PRs, skills, fleet ops), adapting to the user's
field from recorded state (profile, mounts, memory). Quantum control
stays as the deepest domain (Piccolo pulses, Run Inspector) explicitly
as the first domain pack, not the boundary — QEC, other physics,
anything modelable, same loop. Voice section follows ('done research
with this user', not 'pulse design with this researcher').
Also fix-forwards main's typecheck (red from #503/#512): removes the
orphaned armOnboardingSession (its caller died with the splash
transition), an unused writeWelcomeShown import, and a dead enterGroup
const in the splash animation.
Version 0.2.5 -> 0.2.6 (the vsix ships this AGENTS.md).
Closes#515.
Sign up for freeto 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

@jeonghun-jj-lee
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(onboarding): UX polish — build mode, domain-neutral descriptions, editable handoff - #512

Merged
jeonghun-jj-lee merged 2 commits into
mainfrom
fix/onboarding-ux-polish
Aug 22, 2026
Merged

fix(onboarding): UX polish — build mode, domain-neutral descriptions, editable handoff#512
jeonghun-jj-lee merged 2 commits into
mainfrom
fix/onboarding-ux-polish

Conversation

@jeonghun-jj-lee

@jeonghun-jj-leejeonghun-jj-lee commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Three onboarding UX fixes plus one new capability:

1. Sessions start in build mode (not plan)

Onboarding needs tool execution from the start — the interview calls amicode_profile, question, etc. Opening in plan mode forced users to manually switch before anything worked.

2. Domain-neutral option descriptions on intent choices

Added choice_descriptions to the score schema so the compiler renders explicit descriptions alongside option labels. The LLM uses these verbatim instead of inventing quantum-specific ones from the surrounding context.

  • "Write code, refactor, debug, and build software"
  • "Run automated experiment loops and extract insights from results"
  • "See what Amicode can do"

3. Handoff: editable description confirmation (not a dead-end question)

The handoff stage now presents the auto-generated "About you" description in a pre-filled editable text field (via the new default field on the question tool). The user can accept or edit before submitting.

Old choices ("Let's dive into my first task" / "Show me around first") are removed — they had no downstream behavior.

4. Split research_area into two questions

"What research areas?" and "What kind of experiments?" are now asked back-to-back instead of as one combined question.

Depends on

Verification

  • 1240/1240 tests pass
  • Golden files regenerated

Summary by CodeRabbit

  • New Features
    • New sessions now start in an execution-ready mode, allowing onboarding tasks to proceed immediately.
    • Onboarding intent options now include helpful descriptions.
    • Research setup is clearer with separate questions for research area and experiment type.
    • Handoff now presents an editable, automatically generated description.
  • Improvements
    • After onboarding is completed, users are guided to start a new session.
    • Retired session-agent options remain unavailable.

…rminal handoff, split research questions
- default_agent: plan → build (onboarding needs tool execution from the start)
- Add choice_descriptions to score schema + compiler; intent options now carry
explicit domain-neutral descriptions so the LLM doesn't invent quantum-specific ones
- Handoff stage is now a terminal message ('Onboarding finished! Please start a
new session to begin.') with no choices
- Split research_area into two back-to-back questions: 'What research areas?'
and 'What kind of experiments?'
- Regenerated golden files
…andoff
The handoff stage now presents the auto-generated description in an
editable text field (using the new question tool `default` field from
the opencode fork) so the user can review and modify before it's saved.
Requires: harmoniqs/opencode@question-text-default (adds `default`
field to question schema for pre-filled text inputs).
@jeonghun-jj-lee
jeonghun-jj-lee merged commit 82677f0 into mainAug 22, 2026
6 of 7 checks passed
@coderabbitai

coderabbitaiBot commented Aug 22, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 42c7b280-da67-40e6-a541-fa550cb3a707

📥 Commits

Reviewing files that changed from the base of the PR and between 8215f9d and a4f12ff.

📒 Files selected for processing (8)
  • AGENTS.md
  • packages/extension/scores/overture/SCORE.md
  • packages/extension/src/opencode_config.ts
  • packages/extension/src/scores/compiler.ts
  • packages/extension/src/scores/schema.ts
  • packages/extension/test/opencode_config.test.ts
  • packages/extension/test/scores/golden/compile-chained.md
  • packages/extension/test/scores/overture_rewrite.test.ts

📝 Walkthrough

Walkthrough

The PR changes new-session defaults from plan to build and updates Overture onboarding to collect structured research data and an editable generated description. Choice descriptions, compiled output, documentation, and tests reflect the new flow.

Changes

Onboarding updates

Layer / File(s)Summary
Score contract and choice rendering
packages/extension/src/scores/schema.ts, packages/extension/src/scores/compiler.ts, packages/extension/test/scores/overture_rewrite.test.ts
Question supports optional choice descriptions. The compiler renders descriptions with matching choices. Tests verify the output.
Overture interview stages
packages/extension/scores/overture/SCORE.md, packages/extension/test/scores/golden/compile-chained.md, packages/extension/test/scores/overture_rewrite.test.ts
The research stage records research_area and experiment_kind separately. The handoff stage uses an editable, prefilled description, records completion, and instructs the user to start a new session.
Build-first agent configuration
AGENTS.md, packages/extension/src/opencode_config.ts, packages/extension/test/opencode_config.test.ts
New sessions default to build. The plan/build picker and removal of pulse-designer remain unchanged.

Estimated code review effort: 2 (Simple) | ~10 minutes

Sequence Diagram(s)

sequenceDiagram
participant Overture onboarding
participant Score compiler
participant OpenCode session
Overture onboarding->>Score compiler: submit intent and research answers
Score compiler->>OpenCode session: generate interview instructions
OpenCode session->>OpenCode session: save edited description and completion marker
OpenCode session->>OpenCode session: start a new build session
Loading

Suggested reviewers:aarontrowbridge, rchari1

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/onboarding-ux-polish

Comment @coderabbitai help to get the list of available commands.

aarontrowbridge added a commit that referenced this pull request Aug 23, 2026
…pest domain (#515)
The template opened 'You are Amico — Amicode's pulse-design copilot' while
the same prompt's error-corrected-loop section said 'research studio, not
a single-purpose copilot' and the overture had already been rewritten to
'coding and research companion' (tests assert the pulse phrasing is
gone). The identity block was the straggler — and it mis-framed every
session for users whose field isn't pulses.
New identity: autoresearch copilot — the loop first (campaigns,
hypotheses, spec gates, experiments, mechanical verdicts) plus the dev
work it needs (issues, PRs, skills, fleet ops), adapting to the user's
field from recorded state (profile, mounts, memory). Quantum control
stays as the deepest domain (Piccolo pulses, Run Inspector) explicitly
as the first domain pack, not the boundary — QEC, other physics,
anything modelable, same loop. Voice section follows ('done research
with this user', not 'pulse design with this researcher').
Also fix-forwards main's typecheck (red from #503/#512): removes the
orphaned armOnboardingSession (its caller died with the splash
transition), an unused writeWelcomeShown import, and a dead enterGroup
const in the splash animation.
Version 0.2.5 -> 0.2.6 (the vsix ships this AGENTS.md).
Closes#515.
Sign up for freeto 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

@jeonghun-jj-lee
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(onboarding): UX polish — build mode, domain-neutral descriptions, editable handoff - #512

Merged
jeonghun-jj-lee merged 2 commits into
mainfrom
fix/onboarding-ux-polish
Aug 22, 2026
Merged

fix(onboarding): UX polish — build mode, domain-neutral descriptions, editable handoff#512
jeonghun-jj-lee merged 2 commits into
mainfrom
fix/onboarding-ux-polish

Conversation

@jeonghun-jj-lee

@jeonghun-jj-leejeonghun-jj-lee commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Three onboarding UX fixes plus one new capability:

1. Sessions start in build mode (not plan)

Onboarding needs tool execution from the start — the interview calls amicode_profile, question, etc. Opening in plan mode forced users to manually switch before anything worked.

2. Domain-neutral option descriptions on intent choices

Added choice_descriptions to the score schema so the compiler renders explicit descriptions alongside option labels. The LLM uses these verbatim instead of inventing quantum-specific ones from the surrounding context.

  • "Write code, refactor, debug, and build software"
  • "Run automated experiment loops and extract insights from results"
  • "See what Amicode can do"

3. Handoff: editable description confirmation (not a dead-end question)

The handoff stage now presents the auto-generated "About you" description in a pre-filled editable text field (via the new default field on the question tool). The user can accept or edit before submitting.

Old choices ("Let's dive into my first task" / "Show me around first") are removed — they had no downstream behavior.

4. Split research_area into two questions

"What research areas?" and "What kind of experiments?" are now asked back-to-back instead of as one combined question.

Depends on

Verification

  • 1240/1240 tests pass
  • Golden files regenerated

Summary by CodeRabbit

  • New Features
    • New sessions now start in an execution-ready mode, allowing onboarding tasks to proceed immediately.
    • Onboarding intent options now include helpful descriptions.
    • Research setup is clearer with separate questions for research area and experiment type.
    • Handoff now presents an editable, automatically generated description.
  • Improvements
    • After onboarding is completed, users are guided to start a new session.
    • Retired session-agent options remain unavailable.

…rminal handoff, split research questions
- default_agent: plan → build (onboarding needs tool execution from the start)
- Add choice_descriptions to score schema + compiler; intent options now carry
explicit domain-neutral descriptions so the LLM doesn't invent quantum-specific ones
- Handoff stage is now a terminal message ('Onboarding finished! Please start a
new session to begin.') with no choices
- Split research_area into two back-to-back questions: 'What research areas?'
and 'What kind of experiments?'
- Regenerated golden files
…andoff
The handoff stage now presents the auto-generated description in an
editable text field (using the new question tool `default` field from
the opencode fork) so the user can review and modify before it's saved.
Requires: harmoniqs/opencode@question-text-default (adds `default`
field to question schema for pre-filled text inputs).
@jeonghun-jj-lee
jeonghun-jj-lee merged commit 82677f0 into mainAug 22, 2026
6 of 7 checks passed
@coderabbitai

coderabbitaiBot commented Aug 22, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 42c7b280-da67-40e6-a541-fa550cb3a707

📥 Commits

Reviewing files that changed from the base of the PR and between 8215f9d and a4f12ff.

📒 Files selected for processing (8)
  • AGENTS.md
  • packages/extension/scores/overture/SCORE.md
  • packages/extension/src/opencode_config.ts
  • packages/extension/src/scores/compiler.ts
  • packages/extension/src/scores/schema.ts
  • packages/extension/test/opencode_config.test.ts
  • packages/extension/test/scores/golden/compile-chained.md
  • packages/extension/test/scores/overture_rewrite.test.ts

📝 Walkthrough

Walkthrough

The PR changes new-session defaults from plan to build and updates Overture onboarding to collect structured research data and an editable generated description. Choice descriptions, compiled output, documentation, and tests reflect the new flow.

Changes

Onboarding updates

Layer / File(s)Summary
Score contract and choice rendering
packages/extension/src/scores/schema.ts, packages/extension/src/scores/compiler.ts, packages/extension/test/scores/overture_rewrite.test.ts
Question supports optional choice descriptions. The compiler renders descriptions with matching choices. Tests verify the output.
Overture interview stages
packages/extension/scores/overture/SCORE.md, packages/extension/test/scores/golden/compile-chained.md, packages/extension/test/scores/overture_rewrite.test.ts
The research stage records research_area and experiment_kind separately. The handoff stage uses an editable, prefilled description, records completion, and instructs the user to start a new session.
Build-first agent configuration
AGENTS.md, packages/extension/src/opencode_config.ts, packages/extension/test/opencode_config.test.ts
New sessions default to build. The plan/build picker and removal of pulse-designer remain unchanged.

Estimated code review effort: 2 (Simple) | ~10 minutes

Sequence Diagram(s)

sequenceDiagram
participant Overture onboarding
participant Score compiler
participant OpenCode session
Overture onboarding->>Score compiler: submit intent and research answers
Score compiler->>OpenCode session: generate interview instructions
OpenCode session->>OpenCode session: save edited description and completion marker
OpenCode session->>OpenCode session: start a new build session
Loading

Suggested reviewers:aarontrowbridge, rchari1

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/onboarding-ux-polish

Comment @coderabbitai help to get the list of available commands.

aarontrowbridge added a commit that referenced this pull request Aug 23, 2026
…pest domain (#515)
The template opened 'You are Amico — Amicode's pulse-design copilot' while
the same prompt's error-corrected-loop section said 'research studio, not
a single-purpose copilot' and the overture had already been rewritten to
'coding and research companion' (tests assert the pulse phrasing is
gone). The identity block was the straggler — and it mis-framed every
session for users whose field isn't pulses.
New identity: autoresearch copilot — the loop first (campaigns,
hypotheses, spec gates, experiments, mechanical verdicts) plus the dev
work it needs (issues, PRs, skills, fleet ops), adapting to the user's
field from recorded state (profile, mounts, memory). Quantum control
stays as the deepest domain (Piccolo pulses, Run Inspector) explicitly
as the first domain pack, not the boundary — QEC, other physics,
anything modelable, same loop. Voice section follows ('done research
with this user', not 'pulse design with this researcher').
Also fix-forwards main's typecheck (red from #503/#512): removes the
orphaned armOnboardingSession (its caller died with the splash
transition), an unused writeWelcomeShown import, and a dead enterGroup
const in the splash animation.
Version 0.2.5 -> 0.2.6 (the vsix ships this AGENTS.md).
Closes#515.
Sign up for freeto 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

@jeonghun-jj-lee
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(onboarding): UX polish — build mode, domain-neutral descriptions, editable handoff - #512

Merged
jeonghun-jj-lee merged 2 commits into
mainfrom
fix/onboarding-ux-polish
Aug 22, 2026
Merged

fix(onboarding): UX polish — build mode, domain-neutral descriptions, editable handoff#512
jeonghun-jj-lee merged 2 commits into
mainfrom
fix/onboarding-ux-polish

Conversation

@jeonghun-jj-lee

@jeonghun-jj-leejeonghun-jj-lee commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Three onboarding UX fixes plus one new capability:

1. Sessions start in build mode (not plan)

Onboarding needs tool execution from the start — the interview calls amicode_profile, question, etc. Opening in plan mode forced users to manually switch before anything worked.

2. Domain-neutral option descriptions on intent choices

Added choice_descriptions to the score schema so the compiler renders explicit descriptions alongside option labels. The LLM uses these verbatim instead of inventing quantum-specific ones from the surrounding context.

  • "Write code, refactor, debug, and build software"
  • "Run automated experiment loops and extract insights from results"
  • "See what Amicode can do"

3. Handoff: editable description confirmation (not a dead-end question)

The handoff stage now presents the auto-generated "About you" description in a pre-filled editable text field (via the new default field on the question tool). The user can accept or edit before submitting.

Old choices ("Let's dive into my first task" / "Show me around first") are removed — they had no downstream behavior.

4. Split research_area into two questions

"What research areas?" and "What kind of experiments?" are now asked back-to-back instead of as one combined question.

Depends on

Verification

  • 1240/1240 tests pass
  • Golden files regenerated

Summary by CodeRabbit

  • New Features
    • New sessions now start in an execution-ready mode, allowing onboarding tasks to proceed immediately.
    • Onboarding intent options now include helpful descriptions.
    • Research setup is clearer with separate questions for research area and experiment type.
    • Handoff now presents an editable, automatically generated description.
  • Improvements
    • After onboarding is completed, users are guided to start a new session.
    • Retired session-agent options remain unavailable.

…rminal handoff, split research questions
- default_agent: plan → build (onboarding needs tool execution from the start)
- Add choice_descriptions to score schema + compiler; intent options now carry
explicit domain-neutral descriptions so the LLM doesn't invent quantum-specific ones
- Handoff stage is now a terminal message ('Onboarding finished! Please start a
new session to begin.') with no choices
- Split research_area into two back-to-back questions: 'What research areas?'
and 'What kind of experiments?'
- Regenerated golden files
…andoff
The handoff stage now presents the auto-generated description in an
editable text field (using the new question tool `default` field from
the opencode fork) so the user can review and modify before it's saved.
Requires: harmoniqs/opencode@question-text-default (adds `default`
field to question schema for pre-filled text inputs).
@jeonghun-jj-lee
jeonghun-jj-lee merged commit 82677f0 into mainAug 22, 2026
6 of 7 checks passed
@coderabbitai

coderabbitaiBot commented Aug 22, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 42c7b280-da67-40e6-a541-fa550cb3a707

📥 Commits

Reviewing files that changed from the base of the PR and between 8215f9d and a4f12ff.

📒 Files selected for processing (8)
  • AGENTS.md
  • packages/extension/scores/overture/SCORE.md
  • packages/extension/src/opencode_config.ts
  • packages/extension/src/scores/compiler.ts
  • packages/extension/src/scores/schema.ts
  • packages/extension/test/opencode_config.test.ts
  • packages/extension/test/scores/golden/compile-chained.md
  • packages/extension/test/scores/overture_rewrite.test.ts

📝 Walkthrough

Walkthrough

The PR changes new-session defaults from plan to build and updates Overture onboarding to collect structured research data and an editable generated description. Choice descriptions, compiled output, documentation, and tests reflect the new flow.

Changes

Onboarding updates

Layer / File(s)Summary
Score contract and choice rendering
packages/extension/src/scores/schema.ts, packages/extension/src/scores/compiler.ts, packages/extension/test/scores/overture_rewrite.test.ts
Question supports optional choice descriptions. The compiler renders descriptions with matching choices. Tests verify the output.
Overture interview stages
packages/extension/scores/overture/SCORE.md, packages/extension/test/scores/golden/compile-chained.md, packages/extension/test/scores/overture_rewrite.test.ts
The research stage records research_area and experiment_kind separately. The handoff stage uses an editable, prefilled description, records completion, and instructs the user to start a new session.
Build-first agent configuration
AGENTS.md, packages/extension/src/opencode_config.ts, packages/extension/test/opencode_config.test.ts
New sessions default to build. The plan/build picker and removal of pulse-designer remain unchanged.

Estimated code review effort: 2 (Simple) | ~10 minutes

Sequence Diagram(s)

sequenceDiagram
participant Overture onboarding
participant Score compiler
participant OpenCode session
Overture onboarding->>Score compiler: submit intent and research answers
Score compiler->>OpenCode session: generate interview instructions
OpenCode session->>OpenCode session: save edited description and completion marker
OpenCode session->>OpenCode session: start a new build session
Loading

Suggested reviewers:aarontrowbridge, rchari1

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/onboarding-ux-polish

Comment @coderabbitai help to get the list of available commands.

aarontrowbridge added a commit that referenced this pull request Aug 23, 2026
…pest domain (#515)
The template opened 'You are Amico — Amicode's pulse-design copilot' while
the same prompt's error-corrected-loop section said 'research studio, not
a single-purpose copilot' and the overture had already been rewritten to
'coding and research companion' (tests assert the pulse phrasing is
gone). The identity block was the straggler — and it mis-framed every
session for users whose field isn't pulses.
New identity: autoresearch copilot — the loop first (campaigns,
hypotheses, spec gates, experiments, mechanical verdicts) plus the dev
work it needs (issues, PRs, skills, fleet ops), adapting to the user's
field from recorded state (profile, mounts, memory). Quantum control
stays as the deepest domain (Piccolo pulses, Run Inspector) explicitly
as the first domain pack, not the boundary — QEC, other physics,
anything modelable, same loop. Voice section follows ('done research
with this user', not 'pulse design with this researcher').
Also fix-forwards main's typecheck (red from #503/#512): removes the
orphaned armOnboardingSession (its caller died with the splash
transition), an unused writeWelcomeShown import, and a dead enterGroup
const in the splash animation.
Version 0.2.5 -> 0.2.6 (the vsix ships this AGENTS.md).
Closes#515.
Sign up for freeto 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

@jeonghun-jj-lee
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(onboarding): UX polish — build mode, domain-neutral descriptions, editable handoff - #512

Merged
jeonghun-jj-lee merged 2 commits into
mainfrom
fix/onboarding-ux-polish
Aug 22, 2026
Merged

fix(onboarding): UX polish — build mode, domain-neutral descriptions, editable handoff#512
jeonghun-jj-lee merged 2 commits into
mainfrom
fix/onboarding-ux-polish

Conversation

@jeonghun-jj-lee

@jeonghun-jj-leejeonghun-jj-lee commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Three onboarding UX fixes plus one new capability:

1. Sessions start in build mode (not plan)

Onboarding needs tool execution from the start — the interview calls amicode_profile, question, etc. Opening in plan mode forced users to manually switch before anything worked.

2. Domain-neutral option descriptions on intent choices

Added choice_descriptions to the score schema so the compiler renders explicit descriptions alongside option labels. The LLM uses these verbatim instead of inventing quantum-specific ones from the surrounding context.

  • "Write code, refactor, debug, and build software"
  • "Run automated experiment loops and extract insights from results"
  • "See what Amicode can do"

3. Handoff: editable description confirmation (not a dead-end question)

The handoff stage now presents the auto-generated "About you" description in a pre-filled editable text field (via the new default field on the question tool). The user can accept or edit before submitting.

Old choices ("Let's dive into my first task" / "Show me around first") are removed — they had no downstream behavior.

4. Split research_area into two questions

"What research areas?" and "What kind of experiments?" are now asked back-to-back instead of as one combined question.

Depends on

Verification

  • 1240/1240 tests pass
  • Golden files regenerated

Summary by CodeRabbit

  • New Features
    • New sessions now start in an execution-ready mode, allowing onboarding tasks to proceed immediately.
    • Onboarding intent options now include helpful descriptions.
    • Research setup is clearer with separate questions for research area and experiment type.
    • Handoff now presents an editable, automatically generated description.
  • Improvements
    • After onboarding is completed, users are guided to start a new session.
    • Retired session-agent options remain unavailable.

…rminal handoff, split research questions
- default_agent: plan → build (onboarding needs tool execution from the start)
- Add choice_descriptions to score schema + compiler; intent options now carry
explicit domain-neutral descriptions so the LLM doesn't invent quantum-specific ones
- Handoff stage is now a terminal message ('Onboarding finished! Please start a
new session to begin.') with no choices
- Split research_area into two back-to-back questions: 'What research areas?'
and 'What kind of experiments?'
- Regenerated golden files
…andoff
The handoff stage now presents the auto-generated description in an
editable text field (using the new question tool `default` field from
the opencode fork) so the user can review and modify before it's saved.
Requires: harmoniqs/opencode@question-text-default (adds `default`
field to question schema for pre-filled text inputs).
@jeonghun-jj-lee
jeonghun-jj-lee merged commit 82677f0 into mainAug 22, 2026
6 of 7 checks passed
@coderabbitai

coderabbitaiBot commented Aug 22, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 42c7b280-da67-40e6-a541-fa550cb3a707

📥 Commits

Reviewing files that changed from the base of the PR and between 8215f9d and a4f12ff.

📒 Files selected for processing (8)
  • AGENTS.md
  • packages/extension/scores/overture/SCORE.md
  • packages/extension/src/opencode_config.ts
  • packages/extension/src/scores/compiler.ts
  • packages/extension/src/scores/schema.ts
  • packages/extension/test/opencode_config.test.ts
  • packages/extension/test/scores/golden/compile-chained.md
  • packages/extension/test/scores/overture_rewrite.test.ts

📝 Walkthrough

Walkthrough

The PR changes new-session defaults from plan to build and updates Overture onboarding to collect structured research data and an editable generated description. Choice descriptions, compiled output, documentation, and tests reflect the new flow.

Changes

Onboarding updates

Layer / File(s)Summary
Score contract and choice rendering
packages/extension/src/scores/schema.ts, packages/extension/src/scores/compiler.ts, packages/extension/test/scores/overture_rewrite.test.ts
Question supports optional choice descriptions. The compiler renders descriptions with matching choices. Tests verify the output.
Overture interview stages
packages/extension/scores/overture/SCORE.md, packages/extension/test/scores/golden/compile-chained.md, packages/extension/test/scores/overture_rewrite.test.ts
The research stage records research_area and experiment_kind separately. The handoff stage uses an editable, prefilled description, records completion, and instructs the user to start a new session.
Build-first agent configuration
AGENTS.md, packages/extension/src/opencode_config.ts, packages/extension/test/opencode_config.test.ts
New sessions default to build. The plan/build picker and removal of pulse-designer remain unchanged.

Estimated code review effort: 2 (Simple) | ~10 minutes

Sequence Diagram(s)

sequenceDiagram
participant Overture onboarding
participant Score compiler
participant OpenCode session
Overture onboarding->>Score compiler: submit intent and research answers
Score compiler->>OpenCode session: generate interview instructions
OpenCode session->>OpenCode session: save edited description and completion marker
OpenCode session->>OpenCode session: start a new build session
Loading

Suggested reviewers:aarontrowbridge, rchari1

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/onboarding-ux-polish

Comment @coderabbitai help to get the list of available commands.

aarontrowbridge added a commit that referenced this pull request Aug 23, 2026
…pest domain (#515)
The template opened 'You are Amico — Amicode's pulse-design copilot' while
the same prompt's error-corrected-loop section said 'research studio, not
a single-purpose copilot' and the overture had already been rewritten to
'coding and research companion' (tests assert the pulse phrasing is
gone). The identity block was the straggler — and it mis-framed every
session for users whose field isn't pulses.
New identity: autoresearch copilot — the loop first (campaigns,
hypotheses, spec gates, experiments, mechanical verdicts) plus the dev
work it needs (issues, PRs, skills, fleet ops), adapting to the user's
field from recorded state (profile, mounts, memory). Quantum control
stays as the deepest domain (Piccolo pulses, Run Inspector) explicitly
as the first domain pack, not the boundary — QEC, other physics,
anything modelable, same loop. Voice section follows ('done research
with this user', not 'pulse design with this researcher').
Also fix-forwards main's typecheck (red from #503/#512): removes the
orphaned armOnboardingSession (its caller died with the splash
transition), an unused writeWelcomeShown import, and a dead enterGroup
const in the splash animation.
Version 0.2.5 -> 0.2.6 (the vsix ships this AGENTS.md).
Closes#515.
Sign up for freeto 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

@jeonghun-jj-lee
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(onboarding): UX polish — build mode, domain-neutral descriptions, editable handoff - #512

Merged
jeonghun-jj-lee merged 2 commits into
mainfrom
fix/onboarding-ux-polish
Aug 22, 2026
Merged

fix(onboarding): UX polish — build mode, domain-neutral descriptions, editable handoff#512
jeonghun-jj-lee merged 2 commits into
mainfrom
fix/onboarding-ux-polish

Conversation

@jeonghun-jj-lee

@jeonghun-jj-leejeonghun-jj-lee commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Three onboarding UX fixes plus one new capability:

1. Sessions start in build mode (not plan)

Onboarding needs tool execution from the start — the interview calls amicode_profile, question, etc. Opening in plan mode forced users to manually switch before anything worked.

2. Domain-neutral option descriptions on intent choices

Added choice_descriptions to the score schema so the compiler renders explicit descriptions alongside option labels. The LLM uses these verbatim instead of inventing quantum-specific ones from the surrounding context.

  • "Write code, refactor, debug, and build software"
  • "Run automated experiment loops and extract insights from results"
  • "See what Amicode can do"

3. Handoff: editable description confirmation (not a dead-end question)

The handoff stage now presents the auto-generated "About you" description in a pre-filled editable text field (via the new default field on the question tool). The user can accept or edit before submitting.

Old choices ("Let's dive into my first task" / "Show me around first") are removed — they had no downstream behavior.

4. Split research_area into two questions

"What research areas?" and "What kind of experiments?" are now asked back-to-back instead of as one combined question.

Depends on

Verification

  • 1240/1240 tests pass
  • Golden files regenerated

Summary by CodeRabbit

  • New Features
    • New sessions now start in an execution-ready mode, allowing onboarding tasks to proceed immediately.
    • Onboarding intent options now include helpful descriptions.
    • Research setup is clearer with separate questions for research area and experiment type.
    • Handoff now presents an editable, automatically generated description.
  • Improvements
    • After onboarding is completed, users are guided to start a new session.
    • Retired session-agent options remain unavailable.

…rminal handoff, split research questions
- default_agent: plan → build (onboarding needs tool execution from the start)
- Add choice_descriptions to score schema + compiler; intent options now carry
explicit domain-neutral descriptions so the LLM doesn't invent quantum-specific ones
- Handoff stage is now a terminal message ('Onboarding finished! Please start a
new session to begin.') with no choices
- Split research_area into two back-to-back questions: 'What research areas?'
and 'What kind of experiments?'
- Regenerated golden files
…andoff
The handoff stage now presents the auto-generated description in an
editable text field (using the new question tool `default` field from
the opencode fork) so the user can review and modify before it's saved.
Requires: harmoniqs/opencode@question-text-default (adds `default`
field to question schema for pre-filled text inputs).
@jeonghun-jj-lee
jeonghun-jj-lee merged commit 82677f0 into mainAug 22, 2026
6 of 7 checks passed
@coderabbitai

coderabbitaiBot commented Aug 22, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 42c7b280-da67-40e6-a541-fa550cb3a707

📥 Commits

Reviewing files that changed from the base of the PR and between 8215f9d and a4f12ff.

📒 Files selected for processing (8)
  • AGENTS.md
  • packages/extension/scores/overture/SCORE.md
  • packages/extension/src/opencode_config.ts
  • packages/extension/src/scores/compiler.ts
  • packages/extension/src/scores/schema.ts
  • packages/extension/test/opencode_config.test.ts
  • packages/extension/test/scores/golden/compile-chained.md
  • packages/extension/test/scores/overture_rewrite.test.ts

📝 Walkthrough

Walkthrough

The PR changes new-session defaults from plan to build and updates Overture onboarding to collect structured research data and an editable generated description. Choice descriptions, compiled output, documentation, and tests reflect the new flow.

Changes

Onboarding updates

Layer / File(s)Summary
Score contract and choice rendering
packages/extension/src/scores/schema.ts, packages/extension/src/scores/compiler.ts, packages/extension/test/scores/overture_rewrite.test.ts
Question supports optional choice descriptions. The compiler renders descriptions with matching choices. Tests verify the output.
Overture interview stages
packages/extension/scores/overture/SCORE.md, packages/extension/test/scores/golden/compile-chained.md, packages/extension/test/scores/overture_rewrite.test.ts
The research stage records research_area and experiment_kind separately. The handoff stage uses an editable, prefilled description, records completion, and instructs the user to start a new session.
Build-first agent configuration
AGENTS.md, packages/extension/src/opencode_config.ts, packages/extension/test/opencode_config.test.ts
New sessions default to build. The plan/build picker and removal of pulse-designer remain unchanged.

Estimated code review effort: 2 (Simple) | ~10 minutes

Sequence Diagram(s)

sequenceDiagram
participant Overture onboarding
participant Score compiler
participant OpenCode session
Overture onboarding->>Score compiler: submit intent and research answers
Score compiler->>OpenCode session: generate interview instructions
OpenCode session->>OpenCode session: save edited description and completion marker
OpenCode session->>OpenCode session: start a new build session
Loading

Suggested reviewers:aarontrowbridge, rchari1

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/onboarding-ux-polish

Comment @coderabbitai help to get the list of available commands.

aarontrowbridge added a commit that referenced this pull request Aug 23, 2026
…pest domain (#515)
The template opened 'You are Amico — Amicode's pulse-design copilot' while
the same prompt's error-corrected-loop section said 'research studio, not
a single-purpose copilot' and the overture had already been rewritten to
'coding and research companion' (tests assert the pulse phrasing is
gone). The identity block was the straggler — and it mis-framed every
session for users whose field isn't pulses.
New identity: autoresearch copilot — the loop first (campaigns,
hypotheses, spec gates, experiments, mechanical verdicts) plus the dev
work it needs (issues, PRs, skills, fleet ops), adapting to the user's
field from recorded state (profile, mounts, memory). Quantum control
stays as the deepest domain (Piccolo pulses, Run Inspector) explicitly
as the first domain pack, not the boundary — QEC, other physics,
anything modelable, same loop. Voice section follows ('done research
with this user', not 'pulse design with this researcher').
Also fix-forwards main's typecheck (red from #503/#512): removes the
orphaned armOnboardingSession (its caller died with the splash
transition), an unused writeWelcomeShown import, and a dead enterGroup
const in the splash animation.
Version 0.2.5 -> 0.2.6 (the vsix ships this AGENTS.md).
Closes#515.
Sign up for freeto 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

@jeonghun-jj-lee
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(onboarding): UX polish — build mode, domain-neutral descriptions, editable handoff - #512

Merged
jeonghun-jj-lee merged 2 commits into
mainfrom
fix/onboarding-ux-polish
Aug 22, 2026
Merged

fix(onboarding): UX polish — build mode, domain-neutral descriptions, editable handoff#512
jeonghun-jj-lee merged 2 commits into
mainfrom
fix/onboarding-ux-polish

Conversation

@jeonghun-jj-lee

@jeonghun-jj-leejeonghun-jj-lee commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Three onboarding UX fixes plus one new capability:

1. Sessions start in build mode (not plan)

Onboarding needs tool execution from the start — the interview calls amicode_profile, question, etc. Opening in plan mode forced users to manually switch before anything worked.

2. Domain-neutral option descriptions on intent choices

Added choice_descriptions to the score schema so the compiler renders explicit descriptions alongside option labels. The LLM uses these verbatim instead of inventing quantum-specific ones from the surrounding context.

  • "Write code, refactor, debug, and build software"
  • "Run automated experiment loops and extract insights from results"
  • "See what Amicode can do"

3. Handoff: editable description confirmation (not a dead-end question)

The handoff stage now presents the auto-generated "About you" description in a pre-filled editable text field (via the new default field on the question tool). The user can accept or edit before submitting.

Old choices ("Let's dive into my first task" / "Show me around first") are removed — they had no downstream behavior.

4. Split research_area into two questions

"What research areas?" and "What kind of experiments?" are now asked back-to-back instead of as one combined question.

Depends on

Verification

  • 1240/1240 tests pass
  • Golden files regenerated

Summary by CodeRabbit

  • New Features
    • New sessions now start in an execution-ready mode, allowing onboarding tasks to proceed immediately.
    • Onboarding intent options now include helpful descriptions.
    • Research setup is clearer with separate questions for research area and experiment type.
    • Handoff now presents an editable, automatically generated description.
  • Improvements
    • After onboarding is completed, users are guided to start a new session.
    • Retired session-agent options remain unavailable.

…rminal handoff, split research questions
- default_agent: plan → build (onboarding needs tool execution from the start)
- Add choice_descriptions to score schema + compiler; intent options now carry
explicit domain-neutral descriptions so the LLM doesn't invent quantum-specific ones
- Handoff stage is now a terminal message ('Onboarding finished! Please start a
new session to begin.') with no choices
- Split research_area into two back-to-back questions: 'What research areas?'
and 'What kind of experiments?'
- Regenerated golden files
…andoff
The handoff stage now presents the auto-generated description in an
editable text field (using the new question tool `default` field from
the opencode fork) so the user can review and modify before it's saved.
Requires: harmoniqs/opencode@question-text-default (adds `default`
field to question schema for pre-filled text inputs).
@jeonghun-jj-lee
jeonghun-jj-lee merged commit 82677f0 into mainAug 22, 2026
6 of 7 checks passed
@coderabbitai

coderabbitaiBot commented Aug 22, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 42c7b280-da67-40e6-a541-fa550cb3a707

📥 Commits

Reviewing files that changed from the base of the PR and between 8215f9d and a4f12ff.

📒 Files selected for processing (8)
  • AGENTS.md
  • packages/extension/scores/overture/SCORE.md
  • packages/extension/src/opencode_config.ts
  • packages/extension/src/scores/compiler.ts
  • packages/extension/src/scores/schema.ts
  • packages/extension/test/opencode_config.test.ts
  • packages/extension/test/scores/golden/compile-chained.md
  • packages/extension/test/scores/overture_rewrite.test.ts

📝 Walkthrough

Walkthrough

The PR changes new-session defaults from plan to build and updates Overture onboarding to collect structured research data and an editable generated description. Choice descriptions, compiled output, documentation, and tests reflect the new flow.

Changes

Onboarding updates

Layer / File(s)Summary
Score contract and choice rendering
packages/extension/src/scores/schema.ts, packages/extension/src/scores/compiler.ts, packages/extension/test/scores/overture_rewrite.test.ts
Question supports optional choice descriptions. The compiler renders descriptions with matching choices. Tests verify the output.
Overture interview stages
packages/extension/scores/overture/SCORE.md, packages/extension/test/scores/golden/compile-chained.md, packages/extension/test/scores/overture_rewrite.test.ts
The research stage records research_area and experiment_kind separately. The handoff stage uses an editable, prefilled description, records completion, and instructs the user to start a new session.
Build-first agent configuration
AGENTS.md, packages/extension/src/opencode_config.ts, packages/extension/test/opencode_config.test.ts
New sessions default to build. The plan/build picker and removal of pulse-designer remain unchanged.

Estimated code review effort: 2 (Simple) | ~10 minutes

Sequence Diagram(s)

sequenceDiagram
participant Overture onboarding
participant Score compiler
participant OpenCode session
Overture onboarding->>Score compiler: submit intent and research answers
Score compiler->>OpenCode session: generate interview instructions
OpenCode session->>OpenCode session: save edited description and completion marker
OpenCode session->>OpenCode session: start a new build session
Loading

Suggested reviewers:aarontrowbridge, rchari1

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/onboarding-ux-polish

Comment @coderabbitai help to get the list of available commands.

aarontrowbridge added a commit that referenced this pull request Aug 23, 2026
…pest domain (#515)
The template opened 'You are Amico — Amicode's pulse-design copilot' while
the same prompt's error-corrected-loop section said 'research studio, not
a single-purpose copilot' and the overture had already been rewritten to
'coding and research companion' (tests assert the pulse phrasing is
gone). The identity block was the straggler — and it mis-framed every
session for users whose field isn't pulses.
New identity: autoresearch copilot — the loop first (campaigns,
hypotheses, spec gates, experiments, mechanical verdicts) plus the dev
work it needs (issues, PRs, skills, fleet ops), adapting to the user's
field from recorded state (profile, mounts, memory). Quantum control
stays as the deepest domain (Piccolo pulses, Run Inspector) explicitly
as the first domain pack, not the boundary — QEC, other physics,
anything modelable, same loop. Voice section follows ('done research
with this user', not 'pulse design with this researcher').
Also fix-forwards main's typecheck (red from #503/#512): removes the
orphaned armOnboardingSession (its caller died with the splash
transition), an unused writeWelcomeShown import, and a dead enterGroup
const in the splash animation.
Version 0.2.5 -> 0.2.6 (the vsix ships this AGENTS.md).
Closes#515.
Sign up for freeto 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

@jeonghun-jj-lee
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(onboarding): UX polish — build mode, domain-neutral descriptions, editable handoff - #512

Merged
jeonghun-jj-lee merged 2 commits into
mainfrom
fix/onboarding-ux-polish
Aug 22, 2026
Merged

fix(onboarding): UX polish — build mode, domain-neutral descriptions, editable handoff#512
jeonghun-jj-lee merged 2 commits into
mainfrom
fix/onboarding-ux-polish

Conversation

@jeonghun-jj-lee

@jeonghun-jj-leejeonghun-jj-lee commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Three onboarding UX fixes plus one new capability:

1. Sessions start in build mode (not plan)

Onboarding needs tool execution from the start — the interview calls amicode_profile, question, etc. Opening in plan mode forced users to manually switch before anything worked.

2. Domain-neutral option descriptions on intent choices

Added choice_descriptions to the score schema so the compiler renders explicit descriptions alongside option labels. The LLM uses these verbatim instead of inventing quantum-specific ones from the surrounding context.

  • "Write code, refactor, debug, and build software"
  • "Run automated experiment loops and extract insights from results"
  • "See what Amicode can do"

3. Handoff: editable description confirmation (not a dead-end question)

The handoff stage now presents the auto-generated "About you" description in a pre-filled editable text field (via the new default field on the question tool). The user can accept or edit before submitting.

Old choices ("Let's dive into my first task" / "Show me around first") are removed — they had no downstream behavior.

4. Split research_area into two questions

"What research areas?" and "What kind of experiments?" are now asked back-to-back instead of as one combined question.

Depends on

Verification

  • 1240/1240 tests pass
  • Golden files regenerated

Summary by CodeRabbit

  • New Features
    • New sessions now start in an execution-ready mode, allowing onboarding tasks to proceed immediately.
    • Onboarding intent options now include helpful descriptions.
    • Research setup is clearer with separate questions for research area and experiment type.
    • Handoff now presents an editable, automatically generated description.
  • Improvements
    • After onboarding is completed, users are guided to start a new session.
    • Retired session-agent options remain unavailable.

…rminal handoff, split research questions
- default_agent: plan → build (onboarding needs tool execution from the start)
- Add choice_descriptions to score schema + compiler; intent options now carry
explicit domain-neutral descriptions so the LLM doesn't invent quantum-specific ones
- Handoff stage is now a terminal message ('Onboarding finished! Please start a
new session to begin.') with no choices
- Split research_area into two back-to-back questions: 'What research areas?'
and 'What kind of experiments?'
- Regenerated golden files
…andoff
The handoff stage now presents the auto-generated description in an
editable text field (using the new question tool `default` field from
the opencode fork) so the user can review and modify before it's saved.
Requires: harmoniqs/opencode@question-text-default (adds `default`
field to question schema for pre-filled text inputs).
@jeonghun-jj-lee
jeonghun-jj-lee merged commit 82677f0 into mainAug 22, 2026
6 of 7 checks passed
@coderabbitai

coderabbitaiBot commented Aug 22, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 42c7b280-da67-40e6-a541-fa550cb3a707

📥 Commits

Reviewing files that changed from the base of the PR and between 8215f9d and a4f12ff.

📒 Files selected for processing (8)
  • AGENTS.md
  • packages/extension/scores/overture/SCORE.md
  • packages/extension/src/opencode_config.ts
  • packages/extension/src/scores/compiler.ts
  • packages/extension/src/scores/schema.ts
  • packages/extension/test/opencode_config.test.ts
  • packages/extension/test/scores/golden/compile-chained.md
  • packages/extension/test/scores/overture_rewrite.test.ts

📝 Walkthrough

Walkthrough

The PR changes new-session defaults from plan to build and updates Overture onboarding to collect structured research data and an editable generated description. Choice descriptions, compiled output, documentation, and tests reflect the new flow.

Changes

Onboarding updates

Layer / File(s)Summary
Score contract and choice rendering
packages/extension/src/scores/schema.ts, packages/extension/src/scores/compiler.ts, packages/extension/test/scores/overture_rewrite.test.ts
Question supports optional choice descriptions. The compiler renders descriptions with matching choices. Tests verify the output.
Overture interview stages
packages/extension/scores/overture/SCORE.md, packages/extension/test/scores/golden/compile-chained.md, packages/extension/test/scores/overture_rewrite.test.ts
The research stage records research_area and experiment_kind separately. The handoff stage uses an editable, prefilled description, records completion, and instructs the user to start a new session.
Build-first agent configuration
AGENTS.md, packages/extension/src/opencode_config.ts, packages/extension/test/opencode_config.test.ts
New sessions default to build. The plan/build picker and removal of pulse-designer remain unchanged.

Estimated code review effort: 2 (Simple) | ~10 minutes

Sequence Diagram(s)

sequenceDiagram
participant Overture onboarding
participant Score compiler
participant OpenCode session
Overture onboarding->>Score compiler: submit intent and research answers
Score compiler->>OpenCode session: generate interview instructions
OpenCode session->>OpenCode session: save edited description and completion marker
OpenCode session->>OpenCode session: start a new build session
Loading

Suggested reviewers:aarontrowbridge, rchari1

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/onboarding-ux-polish

Comment @coderabbitai help to get the list of available commands.

aarontrowbridge added a commit that referenced this pull request Aug 23, 2026
…pest domain (#515)
The template opened 'You are Amico — Amicode's pulse-design copilot' while
the same prompt's error-corrected-loop section said 'research studio, not
a single-purpose copilot' and the overture had already been rewritten to
'coding and research companion' (tests assert the pulse phrasing is
gone). The identity block was the straggler — and it mis-framed every
session for users whose field isn't pulses.
New identity: autoresearch copilot — the loop first (campaigns,
hypotheses, spec gates, experiments, mechanical verdicts) plus the dev
work it needs (issues, PRs, skills, fleet ops), adapting to the user's
field from recorded state (profile, mounts, memory). Quantum control
stays as the deepest domain (Piccolo pulses, Run Inspector) explicitly
as the first domain pack, not the boundary — QEC, other physics,
anything modelable, same loop. Voice section follows ('done research
with this user', not 'pulse design with this researcher').
Also fix-forwards main's typecheck (red from #503/#512): removes the
orphaned armOnboardingSession (its caller died with the splash
transition), an unused writeWelcomeShown import, and a dead enterGroup
const in the splash animation.
Version 0.2.5 -> 0.2.6 (the vsix ships this AGENTS.md).
Closes#515.
Sign up for freeto 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

@jeonghun-jj-lee