Skip to content

[OpenSpec] agent-identity-narrows #544

Description

@github-actions

⚠️ OpenSpec-managed issue — this content is automatically synced
from the openspec/ directory. Manual edits will be overwritten on next sync.

Artifacts

Specs

Tasks

  • 1.1 Remove $config['owner'] from HermiqAgentNode and HermiqWorkloadNode; both read the acting identity from the run context only.
  • 1.2 Rewrite the twelve HermiqWorkloadNodeTest cases that supplied the identity as config['owner'] with an EMPTY context. They depended on the escalation path itself, so no test exercised how a node actually receives an identity in production.
  • 1.3 Add a negative control asserting a config-supplied owner cannot override a context identity. Asserting only "the context identity is used" would pass against the OLD code too, which also used the context whenever config carried nothing — the conflict is what distinguishes them.
  • 2.1 ScheduleService::resolveActingUser() refuses when a declared actingUser does not resolve to an enabled user, instead of falling back to the schedule owner.
  • 2.2 Keep the UNDECLARED fallback. Expressing no preference is not the same as naming an identity that has gone, and conflating them is the defect.
  • 2.3 Invert testActingUserFallsBackToOwnerWhenNonexistent, asserting the engine is NEVER invoked — a refusal that still ran the agent would be a refusal in name only.
  • 3.1 Switch both nodes from context['triggeredBy'] to context['runAs'].
  • 3.2 Relocate the capability-grant grammar to OpenRegister per ADR-099 §5 — a relocation WITH its tests, not a rewrite.

Synced from openspec/changes/agent-identity-narrows by OpenSpec workflow
App: hermiq

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

    openspecManaged by OpenSpec workflowopenspec:tasksOpenSpec phase: Tasks

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions