Skip to content

Auto R&D two modes: autoresearch + autodev over one director core #497

Closed
5 of 5 issues completed
Closed

Description

@aarontrowbridge

Important

Problem — Amicode's purpose is auto R&D, but the agent surface carries one autonomous mode (autoresearch, itself labeled the interim for the studio's mode rail) while development runs through directly-invoked skills with no mode surface. The same loop shape is implemented twice with drifting vocabulary, and both the proprietary harness (telaio campaign layer) and the open-source harness (bare opencode) need to know what the modes are.
Approach — One director, two autonomous modes over a copilot default: autoresearch + autodev, each a thin binding of one canonical director-core protocol plus a typed gate pack (research: hypothesize→deliberate→experiment→gate→analyze; dev: decompose→implement→integrate). Both modes share one knowledge base and one session-ledger discipline; cross-campaign memory is issues, vault cards, and the pulse/catalog banks. The dual-harness contract keeps the protocol layer open (cards, skills, packs — zero proprietary references, grep-enforced) with enforcement additive where telaio is present.
Approaches considered — Single mega-mode card carrying both loops (rejected: heavier standing context, more branching for sessions doing neither); fully separate modes with separate memory (rejected: the system learns twice and remembers once); copilot as a third autonomous mode (rejected: copilot is interactive, no loop, no gate pack — it's the zeroth posture, defined but packless).
Scope — in: director-core skill (armonissima canonical + amicode public copy), both gate-pack fixtures, both mode cards + spine + deployment, handoff seed schemas, naming/glossary records + blocklist, the dual-harness fixture suite, telaio campaign-mapping docs · out: the studio UI rail, telaio enforcement mechanics, model routing (spartito), research-gate changes beyond extraction, distillation cadence, runtime filing-agency enforcement.
Assumptions — armonissima remains the canonical home for team protocol (the amicode CI checks it out read-only to police copy fidelity); the campaign layer consumes gate packs as (mode → pack → manifest bundle); "conductor" and "autobuild" stay banned.

Acceptance Criteria

  • mode_card_spine_parity == 100% — literal marker pair, one per card, byte-identical spines, content floor (loop verbs + core clauses in real sentences), ledger discovery rule present and contained verbatim in the director core
  • gate_pack_mapping_complete == 100% — both TOML packs schema-valid, forward+reverse mapping complete, floors (≥ 3 phases, ≥ 5 gates, ≥ 1 per kind, unique names, pairwise-distinct procedures)
  • handoff_roundtrip_pass == 100% — ≥ 4 valid seeds round-trip through committed templates field-equal; ≥ 3 adversarial refused with named schema paths (incl. the kind/field-set masquerade)
  • oss_degradation_clean == true — zero blocklisted strings over the enumerated protocol file set; frontmatter parses; skill references resolve into the public set; both director-core copies protocol-identical (bodies byte-identical, frontmatter differs only in surface/agents); deployment receipts carry source digests the suite re-verifies
  • naming_record_complete == true — six locked terms in both glossaries, head-phrase match, amicode glossary canonical, banned list recorded in the blocklist fixture
  • receipt_contract_compatible == true — all 9 receipt-snapshot fields classified with rationale, ≥ 7 protocol; ledger-row schema carries every protocol field name+type; diff test fails on drift either direction

Testing Decisions

One fixture suite, committed in amicode, public — computes all six criteria; no criterion contains a human step. The suite's CI checks out armonissima read-only to police the canonical copies. Authorship split (reviewer ≠ implementer) covers the receipt classification table and round-trip templates — PR-review gates attested in the fixture README.

Key Decisions

The spine markers are literal strings; the spine carries the ledger discovery rule (parity + containment). Gate packs are typed TOML data the campaign layer consumes. Handoff seeds are typed artifacts filed by the receiving director or a human (filing agency is protocol discipline — OB-M5 records the enforcement option). The dual-harness honesty clauses: fixtures police the protocol, not live merge decisions (runtime refusal is enforcement territory); the receipt snapshot is an in-repo fixture with an honor-backed cross-spec sync (OB-M7); post-deployment destination drift is a named residue (re-run the deploy script).

Data Contracts

Naming: director · autoresearch · autodev · campaign · gate pack · mode (copilot = zeroth, interactive, packless). Gate-pack TOML: phases[].gates[] {name, kind: mechanical|human|derived, owner, procedure} + closing_artifact + handoffs[]. Seeds: issue {title, motivation, evidence, suggested_repo, suggested_tier} / hypothesis {observation, evidence, suggested_experiment} — kind field + field set must agree. Spine markers: DIRECTOR-SPINE v1 START/END. Blocklist: telaio, Piccolissimo, Altissimo, harmoniqs, spartito + banned_names (conductor, autobuild). Receipt snapshot: 9 fields per spec-20260821-034210 D1.

Constraints & Invariants

One knowledge base; gates derived from commands, never self-reported; dev gate + deliberate gate bind in both harnesses; promotion/merge-of-non-green is human-only always; ledger survives mode switches (re-read from disk, never rewritten); protocol layer never references the enforcement harness by name.

Prior Art

The live autoresearch card; the develop/implement-issue walk + implementer card; spec-20260821-034210 (receipt schema snapshot); spec-20260821-090401 (shared knowledge base); telaio's phase-4 campaign layer; ADR 0001 (vocabulary freezing).

Source

Durable record: ~/.amico/vaults/armonia-aaron-trowbridge/specs/spec-20260822-063957-auto-rd-two-modes.md (approved: rounds 1–2 full critics, round 3 by direct inspection under subagent degradation — recorded in-spec).

Notes

Residual obligations OB-M1..M8 tracked in the spec (rail, spartito, third pack family, copilot formalization, filing-agency enforcement, transitive blocklist, snapshot sync, pack↔card drift police).

Activity

  1. aarontrowbridge commented on Aug 23, 2026

    @aarontrowbridge
    MemberAuthor

    Frontier progress (2026-08-23): the four parallel slices are implemented, parent-gated, and up as draft PRs — all TDD (red→green), typechecks clean, blocklist-verified:

    Remaining: #501 (mode cards — unblocks when armonissima#62 merges; embeds the director core's discovery rule verbatim inside spine markers) → #502 (dual-harness suite — needs #518/#519/#520/#501) → telaio#20 (campaign-mapping docs). Reviewer notes: #519's fixture corpus and #520's blocklist fixture carry the authorship-split obligation (READMEs record it).

  2. aarontrowbridge commented on Aug 23, 2026

    @aarontrowbridge
    MemberAuthor

    Merge ledger (2026-08-23, batch authorization 'anything green'): 12 PRs merged, all gates green.

    Remaining on this graph: #501 (mode cards — now unblocked, next dispatch) → #502 (dual-harness suite) → telaio#20 (campaign docs).

  3. jeonghun-jj-lee commented on Sep 12, 2026

    @jeonghun-jj-lee
    Contributor

    Closing — the three-mode surface (copilot / research / develop) over director-core is shipped and live. The autoresearch/autodev rename landed per spec-20260907-011500 D1. Both mode cards and the director-core skill are in the skill index.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions