This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Agents

Repository-wide reusable agent skills

Repository agent skills

This project owns the reusable cross-repository agent skills. Maintained improvement work lives in this project’s OpenSpec workspace. It does not centralize component facts or runtime state: each fact remains canonical at its natural owner.

Document Purpose
OpenSpec changes Maintained work, acceptance, and preserved goal history
Root agent guide Current repository-wide operating policy

Dated audits remain in migrated history.

  • openspec/ owns agent-system requirements, changes, and evidence; the migration map locates historical records.
  • Other components own their specifications and changes under their own openspec/ directory. infra/src/openspec/ describes repository evolution.
  • skills/ owns reusable cross-product, repository-wide agent procedures and their development-time evaluations. A product-specific procedure belongs with its product; a procedure that no narrower project genuinely owns lives here rather than in a contrived local home.
  • Product-specific skills remain with their project at projects/<project>/skills/<name>. Do not split one skill across owners.

Every canonical skill is packaged as a skill_library in its owning directory.

The repository discovery directory .agents/skills/ contains one relative symlink per skill. Each link points directly to its canonical project-owned directory. .agents/BUILD.bazel declares the complete discovery set and generates those links with //.agents:write_skills; its generated exact-state test verifies them. Bazel ignores the discovery directory and builds only canonical targets, preventing duplicate packages while allowing skills from more than one owning project. Each skill grants //.agents:skill_discovery read access so the owning declaration can reach it.

Skill evaluation data is not part of the runtime skill_library unless a skill explicitly declares otherwise. Every new or updated skill includes an offline Promptfoo configuration-validation target. That target checks the eval harness, not answer correctness. Live behavioral evaluations are manual, networked tests and must not be included in ordinary wildcard test runs; they may be omitted when representative coverage requires tool calls or external state that cannot be provided safely and reproducibly, with the gap documented beside the eval configuration.