Skip to content

Decouple pulse-design assumptions from Amicode core (perception-first) - #534

Merged
jeonghun-jj-lee merged 10 commits into
mainfrom
532-decouple-pulse-design-from-core
Aug 24, 2026
Merged

Decouple pulse-design assumptions from Amicode core (perception-first)#534
jeonghun-jj-lee merged 10 commits into
mainfrom
532-decouple-pulse-design-from-core

Conversation

@jeonghun-jj-lee

@jeonghun-jj-lee jeonghun-jj-lee commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Closes #532

Summary

Perception-first decoupling of quantum-control assumptions from Amicode's core (ADR 0008). Quantum control remains tightly integrated as the primary domain pack — but the interface now speaks autoresearch generically, and domain-specific code is visibly gated.

Changes

Pulse bank removal (the real functional change):

  • Deleted the pulse-bank widget entirely
  • Removed banked stat from the profile API
  • Removed all 'pulse bank' / 'warm-start from your bank' strings from widgets, home cards, prompt injection

UI vocabulary generalized:

  • 'Pulse Inspector' → 'Run Inspector' (entity-rail, session-side-panel)
  • Prompt examples genericized (no transmon/pulse/fidelity nouns)
  • Meet-amico rebranded from 'Quantum Computing Agent / Piccolo engine' to 'autoresearch copilot / autoresearch loop'
  • Entity rail empty-state generalized

Handoff routing generalized:

  • pulse-designerresearch-session action names
  • Research intent routes through a generic domain fork (one option today)

Domain-specific infrastructure gated (ADR 0008):

  • isQuantumControlPackActive() gate in extension.ts (always true today)
  • Julia auto-offer wrapped behind the gate
  • Quantum-control tools in amicode_tools.ts wrapped in conditional spread
  • Vault prompt: 'pulses' → 'results'

AGENTS.md restructured (483 → 160 lines):

  • Removed: Workflow, Pulse-designer interview, Run-dir contract, Warm-start idiom, Julia project
  • Kept: Identity, Voice, Research loop (generic), Workflow (generic pointer), 'What can Amicode do?' (loop-first), Style
  • Self-presentation now leads with the autoresearch loop, mentions quantum control as a capability

Architecture decision recorded:

  • ADR 0008: docs/adr/0008-autoresearch-identity-domain-pack-boundary.md
  • CONTEXT.md: identity sentence updated, Domain Pack / Substrate / Run glossary added

Test status

  • 105 files pass, 1 skipped (fork-parity contract test — needs fork update + golden re-record)
  • ~26 tests skipped in agents_md.test.ts (content moved to skills, tested there)

Follow-up needed (separate PR)

  • Update the opencode fork to remove pulse-bank from its widget registry + re-record golden fixtures
  • Optionally: move the workflow content from AGENTS.md into the solve skill's SKILL.md reference docs

Summary by CodeRabbit

  • New Features

    • Repositioned Amicode as an autoresearch copilot with quantum control as its first Domain Pack.
    • Added grouped session navigation with clearer Quantum section labeling.
    • Updated research-session routing and result-focused warm-start experiences.
  • Bug Fixes

    • Improved convergence messaging by showing it in the output channel instead of a popup.
  • Documentation

    • Generalized onboarding, prompts, terminology, and workflow guidance for broader research use.
    • Retired pulse-bank concepts and legacy domain-specific public guidance.

@coderabbitai

coderabbitai Bot commented Aug 23, 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: 46e6fb0c-f51c-4765-b45d-ec6e6c5940f1

📥 Commits

Reviewing files that changed from the base of the PR and between 7f594b9 and 6680fb2.

📒 Files selected for processing (75)
  • CONTEXT.md
  • docs/adr/0008-autoresearch-identity-domain-pack-boundary.md
  • packages/app-bundle/overlay/packages/app/src/components/session/panel-menu.tsx
  • packages/app-bundle/overlay/packages/app/src/i18n/en.ts
  • packages/app-bundle/overlay/packages/app/src/pages/home.tsx
  • packages/app-bundle/overlay/packages/app/src/pages/session/session-side-panel.tsx
  • packages/app-bundle/overlay/packages/ui/src/amicode/entity-rail.tsx
  • packages/app-bundle/overlay/packages/ui/src/amicode/home-cards.tsx
  • packages/extension/AGENTS.md
  • packages/extension/opencode-plugin/amicode_tools.ts
  • packages/extension/opencode-plugin/stack_state.ts
  • packages/extension/scripts/record_amicode_fixtures.mjs
  • packages/extension/skills/atoms/SKILL.md
  • packages/extension/skills/atoms/references/analog.md
  • packages/extension/skills/atoms/references/gotchas.md
  • packages/extension/skills/atoms/references/parameters.md
  • packages/extension/skills/atoms/references/physics.md
  • packages/extension/skills/atoms/references/systems-and-gates.md
  • packages/extension/skills/bosonic/SKILL.md
  • packages/extension/skills/bosonic/references/gates.md
  • packages/extension/skills/bosonic/references/gotchas.md
  • packages/extension/skills/bosonic/references/parameters.md
  • packages/extension/skills/bosonic/references/physics.md
  • packages/extension/skills/compose/SKILL.md
  • packages/extension/skills/constraints/SKILL.md
  • packages/extension/skills/demo/SKILL.md
  • packages/extension/skills/demo/references/conventions.md
  • packages/extension/skills/demo/references/custom-objectives.md
  • packages/extension/skills/demo/references/docs.md
  • packages/extension/skills/demo/references/hardware-grounding.md
  • packages/extension/skills/demo/references/structure.md
  • packages/extension/skills/demo/references/trajectory-and-templates.md
  • packages/extension/skills/demo/references/workflows.md
  • packages/extension/skills/design-a-pulse/SKILL.md
  • packages/extension/skills/fluxonium/SKILL.md
  • packages/extension/skills/ions/SKILL.md
  • packages/extension/skills/multistart/SKILL.md
  • packages/extension/skills/objectives/SKILL.md
  • packages/extension/skills/pasqal/SKILL.md
  • packages/extension/skills/pasqal/references/contract.md
  • packages/extension/skills/pasqal/references/devices.md
  • packages/extension/skills/plot/SKILL.md
  • packages/extension/skills/problem-types/SKILL.md
  • packages/extension/skills/problem-types/references/knot-budget.md
  • packages/extension/skills/setup/SKILL.md
  • packages/extension/skills/setup/references/checklist.md
  • packages/extension/skills/setup/references/rules.md
  • packages/extension/skills/setup/references/templates.md
  • packages/extension/skills/simulate/SKILL.md
  • packages/extension/skills/solve/SKILL.md
  • packages/extension/skills/solve/references/campaigns.md
  • packages/extension/skills/solve/references/output.md
  • packages/extension/skills/structural-analysis/SKILL.md
  • packages/extension/skills/transmon/SKILL.md
  • packages/extension/skills/warm-start/SKILL.md
  • packages/extension/src/amicode_service/profile.ts
  • packages/extension/src/amicode_service/widgets.ts
  • packages/extension/src/amicode_service/widgets_src/about-you.ts
  • packages/extension/src/amicode_service/widgets_src/library.ts
  • packages/extension/src/amicode_service/widgets_src/meet-amico.ts
  • packages/extension/src/amicode_service/widgets_src/pulse-bank.ts
  • packages/extension/src/chat_bridge.ts
  • packages/extension/src/extension.ts
  • packages/extension/src/handoff_routing.ts
  • packages/extension/src/opencode_config.ts
  • packages/extension/src/runs_manager.ts
  • packages/extension/test/agents_md.test.ts
  • packages/extension/test/fixtures/amicode/golden.json
  • packages/extension/test/handoff_routing.test.ts
  • packages/extension/test/runs_manager.test.ts
  • packages/extension/test/scores/compiler.test.ts
  • packages/extension/test/scores/loop_first.test.ts
  • packages/extension/test/scores/package_skills.test.ts
  • packages/extension/test/scores/prep_integration.test.ts
  • packages/extension/test/stack_state.test.ts

📝 Walkthrough

Walkthrough

Amicode now presents a domain-agnostic autoresearch workflow. Quantum-control behavior remains active behind domain-pack gates. Pulse-bank statistics, widgets, commands, and terminology are removed or replaced with result-oriented concepts.

Changes

Autoresearch identity and guidance

Layer / File(s) Summary
Identity, workflow, and skill-boundary guidance
CONTEXT.md, docs/adr/..., packages/extension/AGENTS.md, packages/extension/src/opencode_config.ts, packages/extension/skills/*
Documentation defines Amicode as an autoresearch studio, adds Domain Pack terminology, generalizes the workflow, and removes the former public quantum-control skill material.
Domain activation and research routing
packages/extension/opencode-plugin/amicode_tools.ts, packages/extension/src/extension.ts, packages/extension/src/handoff_routing.ts, packages/extension/src/runs_manager.ts
Quantum-control tools and automatic setup offers use activation gates. Research intents route to research sessions. The direct pulse-save command is retired, and convergence is logged instead of shown in a popup.
Generalized UI and result statistics
packages/app-bundle/overlay/packages/app/src/..., packages/extension/src/amicode_service/..., packages/extension/scripts/record_amicode_fixtures.mjs
Panel menus support groups. UI copy uses research and result terminology. Run Inspector replaces Pulse Inspector wording. The banked statistic and pulse-bank widget behavior are removed.
Routing, score, and workflow test updates
packages/extension/test/*
Tests now assert research-session routing, generic score fallbacks, revised skill visibility, retained style guidance, and the absence of the convergence popup.

Estimated code review effort: 3 (Moderate) | ~25 minutes

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 532-decouple-pulse-design-from-core

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

…s a Domain Pack

- Update CONTEXT.md identity sentence and add Domain Pack, Substrate, Run glossary terms
- Add ADR documenting the decision: perception-first decoupling of pulse-design assumptions from core
- Pulse bank concept marked for removal (catalog serves the same purpose generically)
…trings

- Delete pulse-bank.ts widget entirely
- Remove pulse-bank from widget registry (widgets.ts)
- Remove 'banked' stat from profile API response (profile.ts)
- Remove 'banked' from about-you widget config options
- Replace pulse-specific CAN items in meet-amico with generic autoresearch
- Change meet-amico description from 'Quantum Computing Agent' to 'autoresearch copilot'
- Remove 'pulse bank' warm-start prompt from stack_state.ts
- Change library widget prompt from 'pulse-design work' to 'research'
- Update stack_state test assertion
- Re-record golden fixtures

Closes #532 (partial)
The pulse-bank widget removal (ADR 0008) deliberately diverges from the fork
binary which still serves pulse-bank. The contract test (golden-fixture parity)
needs the fork to be updated and goldens re-recorded before re-enabling.

Also updates the fixture recorder script to use 'showcase' instead of the
removed 'pulse-bank' for the widget-fork test scenarios.
- Rename 'Pulse Inspector' → 'Run Inspector' in entity-rail and session-side-panel
- Replace quantum-specific prompt examples with generic autoresearch ones (i18n/en.ts)
- Replace 'warm-start from my pulse bank' with 'warm-start from my previous results' (home.tsx)
- Replace pulse-specific AMICO_CAN items with generic autoresearch capabilities (home-cards.tsx)
- Remove pulse-bank empty-state from entity rail
- Rename handoff routing actions: 'pulse-designer' → 'research-session'
  (research intent now routes through a generic domain fork; today it has one option)
- Update handoff routing tests to match new action names
…532)

- Add isQuantumControlPackActive() gate in extension.ts (always true today)
- Wrap Julia auto-offer setup behind the gate
- Fix vault prompt: 'pulses' → 'results'
- Add QUANTUM_CONTROL_PACK_ACTIVE gate in amicode_tools.ts
- Wrap domain-specific tools (pick_system, set_model, formulate, solve,
  to_hardware, calibrate) in conditional spread — always included today,
  but visibly gated and documented as domain-pack-specific (ADR 0008)
- Generic tools (problem, profile, verify, veloce) remain unconditional
AGENTS.md drops from 483 lines to 160 — all quantum-control-specific workflow
content removed:

- ## Workflow (tier resolution, gate launch, amico-run lifecycle)
- ## Pulse-designer interview (already in scores/pulse-designer/SCORE.md)
- ## The run-dir contract (AMICODE_ITER, AMICODE_PULSE, result.toml)
- ## Warm-start idiom
- ## Julia project

What remains:
- ## Identity (Amico, autoresearch copilot)
- ## Voice
- ## The error-corrected research loop (generic)
- ## Workflow (generic pointer to skills)
- ## Answering 'What can Amicode do?' (loop-first, domain-capabilities second)
- ## Style & formatting (generic)
- <!-- AMICODE_SCORE_SECTION --> splice marker for compiled scores

The 'What can Amicode do?' section is rewritten to lead with the autoresearch
loop, then mention active domain capabilities (currently: quantum control).

Tests updated:
- agents_md.test.ts: workflow/routing/interview blocks skipped (content in skill)
- scores/compiler.test.ts: check Style section instead of removed run-dir contract
- scores/loop_first.test.ts: check splice marker; assert run-dir NOT in template
- scores/prep_integration.test.ts: fallback is the generic loop, not the interview
…al) (#532)

Move 19 quantum-control-specific skills from the public extension bundle
(packages/extension/skills/) to the team vault (armonissima/skills/) with
surface: internal frontmatter. This completes the domain-pack boundary:

Moved skills: atoms, bosonic, compose, constraints, demo, design-a-pulse,
fluxonium, ions, multistart, objectives, pasqal, plot, problem-types,
setup, simulate, solve, structural-analysis, transmon, warm-start

These skills are now visible only to team users (with armonissima mounted).
Public Marketplace users see only the generic autoresearch skills.

- Rename DEFAULT_PLATFORM_SKILLS → QUANTUM_CONTROL_SKILLS (documentation anchor)
- Update package_skills discovery test to verify public root exclusion
- Full resolution (public + vault) still finds all skills on team machines
- Vault setup prompt: 'pulses' → 'results' (was lost during branch switching)
- Convergence notification: remove 'Save pulse' instruction, say 'result artifact saved'
- Save-pulse command confirmation: 'pulse saved' → 'result artifact saved'
The save/promote flow is now the agent's job (via the design-a-pulse skill),
not a VS Code command or notification popup.

- Remove amicode.savePulse command registration entirely
- Remove convergence popup (runs_manager.ts) — log to output channel only
- Remove savePulseTo import (unused)
- Remove savePulse from chat_bridge command allowlist
- Update runs_manager test (popup no longer fires)
…r label

Sync overlay with fork: panel-menu.tsx gains group support,
session-side-panel.tsx reverts to 'Pulse Inspector' under a 'Quantum' section.
@jeonghun-jj-lee
jeonghun-jj-lee force-pushed the 532-decouple-pulse-design-from-core branch from bd59cde to 6680fb2 Compare August 24, 2026 13:03
@jeonghun-jj-lee
jeonghun-jj-lee marked this pull request as ready for review August 24, 2026 13:26
@jeonghun-jj-lee
jeonghun-jj-lee merged commit 4122be7 into main Aug 24, 2026
4 of 8 checks passed
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.

Decouple pulse-design assumptions from Amicode core (perception-first)

1 participant