Skip to content

Principles for agent-facing Portal changes #346

Description

@gosunuts

Summary

Bar for agent-facing Portal changes. Other issues should say whether they fit this issue, with a comment that references it.

Principles

  1. AI-usable. The change makes a real agent path shorter or less ambiguous: named fields over concatenated URLs, visible errors at the CLI's log level, hostnames that match the cert the agent will present. Local-harness-only fixes are allowed, but they are not the same as the production expose recipe.

  2. Access surface, not core semantics. Prefer changes at the interface boundary: CLI, logs, config, skills, docs, installer/service integration, local harnesses, and additive API fields. Do not change protocol, identity, trust, payment, discovery, or transport semantics merely to make an agent workflow easier. Do not add a Portal-plugin workflow engine, finding store, approval DB, or feedback CLI. That stays outside this repo (see Rethink Portal feedback automation as an external workflow #331). Do not fork protocol, payment, identity, or discovery into a second implementation.

  3. Compatibility. Additive logs and more-permissive local defaults are fine. Do not change production relay URLs, public listen addresses, or tenant hostnames without calling that out. Client and relay must ship together when a hostname or listen default changes.

  4. One mechanism, one patch. Small PRs. No parallel helpers for the same contract. No extra abstraction that exists only to look general. A second patch that restates an already-open mechanism is a comment, not a new issue. Prefer deleting skill instructions over adding new ones: if a skill accumulates repeated exceptions, parsing rules, or workaround text, fix the Portal surface and remove the instruction instead.

How to apply

On each candidate issue, comment with:

  • Fit / partial / does not fit
  • Which principles apply
  • One line of evidence

Close or re-scope anything that fails 2 or 3. Keep 1 and 4 as the merge filter.

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions