Skip to content

Recall and capsule contracts do not explicitly support removing captured features #41

Description

@sunjiajunsunjiajun

Problem

research-git is expected to help agents safely remove or reapply previously captured features and experiments as the codebase evolves.

The current recall workflow explicitly covers recalling, composing, and regenerating a capsule onto the current codebase. However, it does not define how an agent should use a capsule when the user wants to remove the captured feature while preserving unrelated changes made since it was introduced.

The capsule-generation contract also focuses on producing an operational resurrection_guide. It does not require equivalent semantic guidance for identifying and removing the feature from a later codebase.

As a result, an agent may be able to infer a removal from the stored intent, code slices, knobs, and assumptions, but this behavior is implicit and depends on the agent's interpretation. The recall skill and capsule-regenerator contract only explicitly describe reimplementation.

Current limitation

For a request such as:

Remove the FlashInfer MLA optimization, but keep generation behavior unchanged.

the agent can recall the relevant capsule and inspect the current source, but there is no defined workflow or capsule contract describing:

  • how to distinguish feature-owned behavior from later unrelated changes
  • which invariants or fallback behavior must remain after removal
  • how removal should be represented in the regenerator's output
  • how to report cases where the feature can no longer be cleanly separated

This makes semantic removal less predictable than reapplication, even when the capsule contains enough contextual information for an agent to attempt it.

Impact

Users cannot reliably treat removal as a supported counterpart to reapplication. The result depends on whether the selected agent can infer a safe inverse operation from information that was primarily recorded for resurrection.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions