Skip to content
Back to skills

Contract

ASecurity

Write or repair an Outerloop benchmark contract, identify solver scope, and validate .outerloop.yaml until it passes.

  • 37 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 11, 2026
ai-agentspythonbashnodegit

Works with

  • cli

Security analysis

A100/100

Scanned November 11, 2026

npx -y skills add outerloop-science/outerloop --skill contract --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Contract?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Contract
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/outerloop-science-contract/badge)](https://www.skillsdirectory.com/skills/outerloop-science-contract)

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

Download with Pro
SKILL.md
---
name: contract
description: Write or repair an Outerloop benchmark contract, identify solver scope, and validate .outerloop.yaml until it passes.
---

1. Work at the target repository root and read its guidance. Never target the
   Outerloop kernel itself. Inspect benchmark scripts, tests and package commands
   to find a deterministic, repeatable command that prints a numeric metric as
   JSON on one line. Ask the user if the benchmark, metric or direction is
   ambiguous; do not invent an evaluator or run an expensive benchmark without
   an agreed compute budget. On a cluster, never run benchmarks or evaluations
   on the login node; submit them as Slurm jobs.
2. Read [docs/contract.md](https://github.com/outerloop-science/outerloop/blob/main/docs/contract.md)
   for fields and its linked reference for constraints. Inspect an existing
   `.outerloop.yaml` before proposing changes. Show the benchmark command, metric,
   `min` or `max` direction, budget caps and narrow solver-only `scope.allowed`.
   Trace evaluator code, fixtures and scoring dependencies; keep them outside
   every allowed path. If solver and evaluator cannot be separated safely, stop
   and ask the user to choose a narrower scope or reorganize them.
3. Write the agreed `.outerloop.yaml` in the target repository. Preserve existing
   budgets unless the user requests a change; ask for missing budget choices.
   Never allow `.github/`, the contract or `docs/roadmap.md` in solver scope.
   Contract authoring is an operator setup action, not permission for the solver
   to edit it. If repository guidance forbids this edit, present the proposal
   and stop for the user to apply it. Do not enable automatic merging.
4. In the Python environment containing `outerloop-science`, run:

   ```bash
   python -m outerloop.contract_cli .outerloop.yaml
   ```

   Read each validation error, fix the relevant field, and run the same command
   again until it exits zero. If a fix needs a scientific choice, broader write
   access or more budget, stop and ask instead of guessing. A missing module is
   an installation problem: return to **setup** rather than altering the schema.
5. Report successful validation, metric direction, budget and allowed paths.
   Validation checks the contract, not benchmark correctness: disclose whether
   the benchmark was actually run and its JSON checked. Leave commit, push and
   starting the loop to an explicit user request. If a local forge already exists,
   explain that editing this checkout does not update its target branch; ask how
   the user wants to synchronize it before operating on the new contract.

Attribution

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

View all in ai-agents →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.