Skip to content

Derive the agent architecture inventory and correct automatic-pipeline guidance #485

Description

@forkwright

Finding

Akroasis's primary agent-facing architecture inventory is manually maintained and already omits a shipped crate/interface. The adjacent agent guide also describes signal integration as automatic and downstream matching as exhaustive, while the current repository explicitly requires manual pipeline wiring and uses #[non_exhaustive] signal kinds with wildcard mappings.

The result is an orientation surface that hides part of the live workspace and teaches the opposite extension procedure from the one the code requires.

Verified against main c8e671845adca3e5b57a205d08aca31eadbc6000.

Evidence

  • The live crates/ directory contains eight workspace crates under root members = ["crates/*"]: akroasis-server, akroasis, kerykeion, kryphos, semaino, stoicheion, syntonia, and tekmerion.
  • _llm/architecture.toml:1-64 declares generated = false and lists only seven [[architecture.crates]] entries. akroasis-server is absent, and the only listed interface is the CLI.
  • AGENTS.md:32-40 tells agents: “add a domain, add a crate, signals flow automatically” and “extend GeoSignal enum in stoicheion; downstream crates match exhaustively.”
  • README.md:11 states the actual current boundary: the application does not wire a live collector-to-Semaino pipeline. README.md:74 says adding a domain requires explicit collector-to-processing wiring and verification.
  • stoicheion::SignalKind is #[non_exhaustive]; current Semaino consumers use wildcard arms rather than exhaustive cross-crate matches. Make SignalKind own one canonical stable domain identity #481 records the concrete domain-identity consequences.
  • No open issue owns the incomplete agent inventory or contradictory extension guidance.

Why this matters

These files exist to reduce cold-start reconstruction for agents. Omitting the server crate makes the durable HTTP interface invisible to an agent choosing an owner, while the automatic-flow claim encourages a new collector crate to stop after producing a type even though no runtime will consume it.

The exhaustive-match claim is especially harmful in this repository: a new domain can compile through wildcard arms while silently inheriting fallback behavior. An agent following the guide receives no warning to inventory baselines, convergence, fingerprints, sinks, runtime registration, and application lifecycle.

Workspace identity/path membership is already mechanically observable. Maintaining it by hand adds no judgment and has already drifted.

Desired correction

Derive or mechanically check the crate/interface inventory from Cargo metadata and the live workspace, while keeping role/layer descriptions as maintained judgment. Include every shipped crate exactly once and every public interface the file claims to inventory.

Rewrite the extension guidance to describe the real sequence: define the domain model, update canonical domain identity, implement the collector, register/runtime-wire it, route it into processing, and prove an end-to-end signal reaches the intended consumers. Do not claim exhaustive downstream matching where #[non_exhaustive] and wildcard behavior are intentional.

Done when:

  • every live workspace crate appears exactly once in the architecture inventory;
  • adding/removing/renaming a crate without updating/regenerating the view fails a check;
  • akroasis-server and its HTTP interface are represented;
  • agent guidance states that signal flow requires explicit runtime wiring and verification;
  • the new-domain checklist points to the domain-identity and Semaino consumer surfaces that must change; and
  • volatile structural facts are derived while architectural rationale remains human-owned.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions