Skip to content

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

Description

@jeonghun-jj-lee

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

Important

Problem: Amicode's core infrastructure (AGENTS.md, UI strings, extension activation, tool registration, handoff routing, profile stats) implicitly assumes quantum pulse design is the only domain. This makes Amicode read and feel like "a pulse-design tool" rather than "an autoresearch studio with deep quantum-control capability." Users who see the product for the first time receive a pulse-designer, not a research copilot.

Approach: Fix what users and the agent perceive — text, identity, naming, conditional gating — without restructuring packages or adding registries. Quantum-specific code stays where it is but becomes visibly domain-specific (gated, namespaced, clearly labeled). No new runtime abstractions.

Scope: AGENTS.md, UI i18n strings, extension.ts activation, handoff_routing.ts, amicode_tools.ts registration, profile.ts stats, the "What can Amicode do?" self-presentation, and full removal of the "pulse bank" concept (widget, stat, prompt injection). Schemas and package layout are explicitly out of scope.

Assumptions: No second domain pack is imminent. The quantum-control pack ships active by default; behavior is unchanged for current users. This is architectural correctness, not a feature.

Acceptance Criteria

  • AGENTS.md contains no quantum-control workflow (tier resolution, run-dir contract, Julia project, warm-start idiom, per-iter plotting) — all moved to the solve skill
  • AGENTS.md self-presentation leads with the autoresearch loop, mentions quantum control as a capability (not identity)
  • UI prompt examples contain no quantum-specific nouns (transmon, pulse, fidelity)
  • Side panel tab reads "Run Inspector" not "Pulse Inspector"
  • Extension Julia/Piccolo precompilation is wrapped in a pack-activation conditional
  • handoff_routing.ts routes research intent through a generic domain fork (one option today: quantum control)
  • amicode_tools.ts domain tools are registered conditionally (condition always true today)
  • profile.ts stats count "runs" and "best objective" generically; fidelity rendering is display-layer only
  • "Pulse bank" widget deleted from both amicode extension and opencode fork
  • banked stat removed from profile API response
  • All "pulse bank" / "warm-start from your pulse bank" strings removed from widgets, home cards, prompt injection, and meet-amico capabilities list
  • Entity rail pulse-bank empty-state removed
  • CONTEXT.md identity sentence and glossary reflect the autoresearch-studio identity (Domain Pack, Substrate, Run defined)
  • ADR 0008 committed documenting the decision

Key Decisions

Decision Rationale
No pack registry Premature; one pack exists. Developer discipline + code review enforces the boundary.
Schemas untouched Internal, migration cost, no user-facing confusion. Wait until a second domain needs them.
Gates are always-true today Behavior unchanged for current users; the seam exists for future packs.
solve skill is the single home for quantum-control workflow Avoids distributing across many skills; one authoritative reference.
UI vocabulary generalized, not made dynamic No config-driven i18n injection; just rename the hardcoded strings.
"Pulse bank" removed, not renamed The catalog system (amico catalog) already does the same job generically. Warm-start is a skill concern, not a core surface. The widget, stat, and all prompt references are deleted.

Constraints & Invariants

  • Quantum control remains tightly integrated — it is the primary domain, not a plugin that could be ripped out.
  • No user-visible behavior change for existing quantum-control users.
  • The solve skill must carry the FULL workflow that was removed from AGENTS.md — nothing can be lost.
  • Run Inspector still renders pulse shapes when AMICODE_PULSE data exists; it just doesn't assume pulses in its naming.

Prior Art

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

Source

Brainstorming session — audit of pulse-design coupling across amicode + opencode fork codebase. Full audit identified ~40 files across 6 layers with implicit pulse-design assumptions.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions