Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Agent Control Command Contract

ASecurity

Design or review a declared control-command profile and its verb/backend lifecycle matrix. Distinguish policy denial, unsupported capability, delivery acknowledgement, independently observed effect, and unknown outcome; bind authorization to principal, target, scope, current policy, expiry, and fencing epoch. NOT for claiming runtime correctness, proving an adapter from declarations, or approving a control-panel button without independent runtime evidence.

2 stars
0 votes
0 copies
0 views
Added 9/24/2026
toolsgobashnodetestingbackend

Works with

cli

Security Analysis

A100/100

Pro scans all 11 files and shows the line behind each finding

Scanned 10/2/2026

$npx -y skills add curiositech/port-daddy --skill agent-control-command-contract --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Agent Control Command Contract?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Agent Control Command Contract
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/curiositech-agent-control-command-contract/badge)](https://www.skillsdirectory.com/skills/curiositech-agent-control-command-contract)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: agent-control-command-contract
description: >-
  Design or review a declared control-command profile and its verb/backend
  lifecycle matrix. Distinguish policy denial, unsupported capability,
  delivery acknowledgement, independently observed effect, and unknown
  outcome; bind authorization to principal, target, scope, current policy,
  expiry, and fencing epoch. NOT for claiming runtime correctness, proving an
  adapter from declarations, or approving a control-panel button without
  independent runtime evidence.
license: Apache-2.0
allowed-tools: Read,Write,Edit,Bash,Grep,Glob
metadata:
  category: Agent & Orchestration
  tags:
    - operator-control-panel
    - control-commands
    - agent-lifecycle
    - authorization
    - agent-harbor
  provenance:
    kind: first-party
    owners:
      - port-daddy
  pairs-with:
    - skill: human-gate-designer
      reason: Tool-gate decisions and control-command decisions have different evidence and state transitions.
    - skill: multi-agent-coordination
      reason: Interrupting a body with active file claims needs claim cleanup beyond the command lifecycle.
    - skill: agent-identity-continuity-reputation
      reason: Kill and fork can create successor relationships whose identity evidence this command contract does not establish.
  io-contract:
    kind: deliverable
    consumes:
      - kind: operator-control-profile
        format: json
    produces:
      - kind: declaration-audit
        format: json
---

# Agent Control Command Contract

Use this skill to declare the control commands a particular product profile offers and to find inconsistencies before runtime testing. The audit deliberately reports declaration completeness only. It does not execute a command, prove that the declared policy source is authoritative, or establish that an operator interface may enable a control.

## Choose an explicit profile

Start with a profile whose origin is reviewable: an operator workflow, product requirement, or adapter contract. Put only the required verbs in `profile.requiredVerbs`. The first-party iOS vocabulary and Harbor control-panel documents name `steer`, `interrupt`, `pause`, `kill`, `checkpoint`, and `fork`; that list describes a product profile and does not make all six mandatory for every product. A subset is valid when its product contract says so.

Do not infer support from a verb name, UI mock, ADR, backend label, or self-report. The sample uses anonymous constructed backends and explicitly says no adapter was probed. It makes no claim about Cloudflare or another provider.

## Method

1. **Scope the contract.** Give the profile an ID, name, basis, and required-verb list. Add a verb row for each required verb, plus other verbs actually declared by the profile. A generic `control` row is not a substitute for distinct behavior when the profile itself promises distinct actions.
2. **Name the backends.** List the adapters in scope and the verbs each declares as supported. Keep measured support evidence outside this static declaration and link it in the product's test record.
3. **Complete the matrix.** Include exactly one row for every declared verb × backend pair. A supported row declares how the lifecycle can represent request, policy denial, delivery, acknowledgement, observed effect, failure, pre-delivery expiry, and an unknown outcome. An unsupported row must say `unsupported` and must not claim delivery or effect.
4. **Bind authorization.** Declare the fields resolved for the principal, target resource, operation scope, policy revision, expiry, and fencing epoch. State that each is rechecked at command admission. A label such as `lease-store` or `event-store` is not itself proof of freshness or authority.
5. **Run the static audit and inspect each finding.** It rejects missing, duplicate, contradictory, or unreferenced matrix rows and malformed typed values. A declaration pass is a prerequisite to testing, not a clickable-control decision.
6. **Test the actual boundary separately.** Exercise allow, deny, stale policy, wrong principal/target/scope, expired authorization, lower fencing epoch, duplicate command ID, transport acknowledgement without effect, effect read-back, expiry before delivery, and expiry after delivery with unavailable observation. Join evidence to the exact backend and profile version.

## Declaration flow

```mermaid
flowchart TD
    A[Choose product profile] --> B[Declare required verbs and backends]
    B --> C[Write exactly one matrix cell per verb and backend]
    C --> D[Declare principal target scope policy expiry and epoch checks]
    D --> E[Run static declaration audit]
    E --> F{All declarations consistent?}
    F -->|No| G[Repair findings and rerun]
    G --> E
    F -->|Yes| H[Declaration complete only]
    H --> I[Run adapter and authority-boundary tests]
    I --> J[Verify effects and failure outcomes independently]
    J --> K[Review UI gating against exact runtime evidence]
```

## Command lifecycle trace

```mermaid
sequenceDiagram
    participant U as Operator client
    participant P as Policy enforcement point
    participant A as Adapter
    participant R as Runtime
    participant O as Independent observer
    U->>P: request command id, principal, target, scope
    alt Admission check fails
        P-->>U: policy-denied with reason and no dispatch
    else Admission passes
        P->>A: authorized command with expiry and fencing epoch
        alt Adapter reports known failure
            A-->>P: failed with a recorded reason
            P-->>U: failed with no success implied
        else Command delivered
            A->>R: dispatch to addressed target generation
            A-->>P: delivery receipt
            P-->>U: delivered or acknowledged but not effect proof
            alt Independent observer verifies effect
                R-->>O: changed-state evidence
                O-->>U: effect observed with source and revision
            else Deadline passes without conclusive observation
                O-->>U: outcome unknown, reconcile before retry
            end
        end
    end
```

## Interpret the result conservatively

`node scripts/control_contract_audit.mjs --input examples/research-sample-input.json` emits `declarationPass`, findings, and an explicit static-scope statement. The script exits nonzero for invalid input or any declaration failure. It always sets `safeToRenderControls: false`: runtime permission, adapter behavior, independent effect evidence, and UI gating are outside its scope.

The audit checks that a required verb exists and has at least one declared supporting backend; it does not force every backend to support every verb. Each backend's positive `supportedVerbs` list must match the `supported`/`unsupported` matrix exactly. Every declared pair needs one row. Duplicate names, duplicate pairs, unknown references, numeric verbs, missing cells, contradictory support, and missing lifecycle distinctions fail.

`acknowledged` means only that the receiver reported receiving or processing the command under the declared protocol. `effect-observed` requires a separate read-back source. `policy-denied` is an authorization outcome before dispatch. `unsupported` means the target adapter declares no capability for that verb. If a command may have been delivered but there is no reliable effect observation, report `outcome-unknown`; expiry alone does not prove that the effect did not happen.

## Worked contract review

The sample profile requires only `steer` and `interrupt`. One anonymous constructed adapter declares those verbs; an observer-only example declares neither. Each pair is present once. The supported cells include effect observation and the unknown-outcome path; the unsupported cells do not pretend to deliver. Running the sample demonstrates a consistent *declaration*, not a measured adapter or a production authorization test.

To adapt the sample for a real system:

- Replace its anonymous names and descriptive placeholders with versioned local values.
- Build the support matrix from adapter tests, not guesses or copied provider examples.
- Capture policy, identity, target, scope, expiry and authority-epoch evidence from the command path.
- Preserve an outcome-unknown record after send/observer loss; reconcile it before retrying non-idempotent actions.
- Keep an operator control disabled until separate tests demonstrate its exact admission, delivery, effect, denial and timeout behavior.

## Reference routing

- Read [`references/verb-state-machine.md`](references/verb-state-machine.md) for lifecycle meaning and per-verb distinctions.
- Read [`references/authorization-sources.md`](references/authorization-sources.md) for current authority and stale-view handling.
- Read [`references/evidence-scope.md`](references/evidence-scope.md) for source depth, NIST scope, and constructed examples.
- Read [`references/admission-and-effect-evidence.md`](references/admission-and-effect-evidence.md) for the worked PDP/PEP attribute method and positive/negative fixtures.
- Use [`schemas/control-contract.schema.json`](schemas/control-contract.schema.json) for structure and [`scripts/control_contract_audit.mjs`](scripts/control_contract_audit.mjs) for semantic declaration checks.
- Use [`templates/output-template.md`](templates/output-template.md) to write a new profile. [`examples/expected-output.md`](examples/expected-output.md) records positive and negative fixtures.

## Source and claim boundary

The first-party control vocabulary and UI needs are derived from the Harbor control-plane work packet, its `Session List`/control flow, binder chapters 13 and 15, and the iOS surface design. They are design inputs, not evidence that any specific runtime currently implements them. NIST SP 800-162 supports the narrower ABAC vocabulary described in the evidence reference; it does not prove this schema or any adapter is secure.

## Bundle navigation

[agents index](agents/INDEX.md), [tests index](tests/INDEX.md).

The [example index](examples/INDEX.md) separates the iOS operator fixture from the constructed research declaration.

Attribution

curiositechcuriositech
View sourceSee grades on GitHubMore from curiositech →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

ucoz-landing-skill

Create and edit uCoz homepage landing pages via MCP: custom templates, hero sections, lead forms, navigation menus, SEO, and responsive layout. Includes a visual design system (style selection, layout/grid, section recipes, typography/spacing, color tokens, component states, icons, modern CSS/JS, motion, imagery, social proof, copy/voice, accessibility). Uses ucoz-mcp tools for templates, site file uploads, and site modules.

107 votes

Paperclip

Interact with the Paperclip control plane API for task coordination and governance. Use when checking assignments, updating issue status, posting comments, delegating work, managing routines, or calling Paperclip API endpoints.

953191 votes

Pptx

Presentation toolkit (.pptx). Create/edit slides, layouts, content, speaker notes, comments, for programmatic presentation creation and modification.

471861 votes

Daw Music

Digital Audio Workstation usage, music composition, interactive music systems, and game audio implementation for immersive soundscapes.

761 votes

Instantly Rdsthomas Mission Control

Instantly.ai cold email outreach API - manage campaigns, leads, accounts, and analytics. Use for cold email automation, lead management, campaign creation/monitoring, and email account warmup.

761 votes
View all in tools →