Skip to content

Symposium & Dial9: Documentation contradicts the code in eight statements #293

Description

@Fluzko

Part of #294.

Depends on: #289, which decides what the first statement should say. Worth doing last.

What happens

Eight published statements contradict the implementation. They are not cosmetic: they lead a crate author to build the wrong integration, which is how dial9 ended up serving skills from a crate nobody depends on. Note the eight statements span twelve file locations.

  1. crate-authors/supporting-your-crate.md offers a chained reference's version field as the way to version skills separately from the library, and reference/plugin-definition.md presents the field with no caveat. That version is discarded (Symposium & Dial9: A plugin reference's declared version is accepted and ignored #289). The worked example also places the reference in a crate most projects do not declare, so copying it reproduces the bug.
  2. reference/plugin-definition.md and crate-authors/authoring-a-plugin.md say hooks, MCP servers and subcommands declared in a crate manifest are not yet dispatched. All three dispatch, and there is a test for each. Only custom predicate definitions remain unwired.
  3. reference/plugin-definition.md and crate-authors/supporting-your-crate.md document a ten-hop limit on reference chains. No such limit exists; termination comes from tracking what has already been loaded.
  4. crate-authors/supporting-your-crate.md says a cycle "stops and warns". The skip is silent. (reference/plugin-definition.md says only "with cycle detection", which is true.)
  5. crate-authors/supporting-your-crate.md and reference/plugin-definition.md say deduplication is by crate name plus version. Neither of the two dedups uses the version.
  6. workspace-skills.md says a member crate's skills install, once published, for projects depending on the crate. That needs either the user's consent or a registry entry naming it, since dependencies are not a trust root. (Related: Symposium & Dial9: A disabled plugin installs anyway, and the status output disagrees with what happened #290.)
  7. reference/cargo-agents-sync.md says sync registers both global and project hooks. It registers one, per the configured scope.
  8. design/important-flows.md says the consent prompt and the use / search / status commands are not implemented. All four ship.

Separately, [subcommand.<name>] has no reference documentation at all, though the crate-author guide sends readers to the reference for the full schema.

How to see it

Each is a pair to compare; no commands needed beyond opening the two sides. For statements 3 and 4 the quickest check is that nothing in the plugin-resolution code implements a depth limit or logs a skip, and design/module-structure.md already describes the real behaviour correctly, so the reference pages and the design chapter disagree with each other.

Done when

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

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    • Status
      Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions