Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion resources/prometheus-skills-mini
115 changes: 115 additions & 0 deletions resources/skills/agent-team-creator/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
---
name: agent-team-creator
description: "Create the smallest useful coding agent team for a task, with guided role discovery and native exports for UAR, Codex, Claude Code, Copilot, Kimi Code, MiniMax CLI, OpenCode and DeepSeek. Use when a user asks to create, configure or choose an agent team; use agent-team-manage for existing task state. Do not use for existing task updates (see agent-team-manage)."
license: MIT
compatibility: Requires Node.js 22 or newer. Git is optional for handoff snapshots. Model gateways, memory services and native harness CLIs are optional and separately configured.
metadata:
version: "1.0.0"
tags: "agents, teams, orchestration, coding"
---

# Agent Team Creator

Help the user choose a useful team, then create inspectable definitions. A role
describes responsibility; a skill provides reusable instructions; a model supplies
capability; a harness owns execution. Do not turn these into one interchangeable
concept or start a second agent loop.

## Start with the task

Read project instructions and any active KBD work first. Reuse answers already
given. Ask only for missing outcome, scope, deliverables, budget preference and
review needs. Use ordinary language: “Is this one isolated change, or does it
span design, implementation and verification?” The user need not know agent
terminology. Choose a short team ID and explain it rather than requiring jargon.

Use [assets/intake.json](assets/intake.json) as the JSON request shape. `guide`
returns missing intake fields when answers are incomplete, or a proposed team
with role explanations and a single-agent alternative. Once task details are known,
the guide returns `proposedRoles` and ownership questions until every proposed role
has output paths in `ownership: {"role-id": ["relative/path/**"]}`. Inspect the
project, suggest concrete disjoint paths, and reuse known scope. Reviewers can read
broadly but need a separate findings output path. Only `ready: true` returns `team`:

```text
node <this-skill>/scripts/cli.mjs guide --input intake.json
```

Recommend one implementer for a small isolated task. Add specialists only for
concrete work that can be assigned separately. Independent review costs another
pass; explain that tradeoff. Let the user refine roles using their existing
authorization and preferences. Do not require a ritual confirmation for every
reversible file creation. Experts may supply a manifest directly.

The guide’s skill IDs are suggestions, not assertions that anything is installed.
Discover actual installed skills or use an available skills directory/search.
Inspect each chosen skill’s provenance, scope, tools and instructions. Replace
unavailable suggestions, or propose installation when needed; do not silently
install external code. Bind discovered skills to each role’s `skills` array.

## Define and export

Save the proposed `team` from guide output. Fill `owns`, inputs, outputs and
dependencies for each role before parallel edits. Empty ownership is unresolved,
not permission over the repository. The [manifest reference](references/manifest.md)
and [JSON schema](schemas/team.schema.json) define the common contract.

Select models with `$agent-team-models`: declared strength, required capabilities,
and known prices, followed by concrete IDs. Tier labels alone do not configure a
native model. Every native option can be carried in `native.<target>.options`,
role-native overrides, or exact `native.<target>.files`. Read
[native harness contracts](references/native-harnesses.md) for the selected
target’s mapping, source, plugin support and limitations. Do not load every
harness manual for a single-target task.

```text
node <this-skill>/scripts/cli.mjs validate --input team-request.json
node <this-skill>/scripts/cli.mjs init --input team-request.json
node <this-skill>/scripts/cli.mjs export --input export-request.json
```

`team-request.json` contains `{"team": <manifest>, "state": <local-state-path>}`.
`export-request.json` contains `{"state": <local-state-path>, "target": "codex",
"out": <new-proposal-directory>}`. Targets are `uar`, `codex`, `claude`,
`copilot`, `kimi`, `minimax`, `opencode`, `deepseek`, and the separate `bossfang`
integration. MiniMax means its own `mcode` CLI.

Export never overwrites an existing output directory or native configuration.
Inspect `team-export.json`, diagnostics, native files and the source/version
receipt. Preservation of arbitrary options is not semantic validation. Validate
with the installed harness when available, or report source-only support.

## Install and operate within the requested scope

Apply reviewed proposals only where the user authorized them. Merge existing
native configuration deliberately; never replace it wholesale. Follow the
native reference for supported project agents or plugin/marketplace installation.
Do not invent plugin agent fields where a harness has none. A plugin installation
does not start an agent team.

For UAR or BossFang, keep registry registration, activation and execution separate.
Use the exported native payload and verified route, operator-selected instance
URL and environment credential reference. Record each returned native ID and
outcome; multi-agent registration is not atomic. BossFang Hands and standalone
agent/workflow registration are alternative native deployment paths. Choose one.
Do not auto-activate a Hand or run a workflow merely because definitions exist.

For actual work, the chosen harness owns native spawning, permissions, sessions,
subagent depth and model overrides. Use its available tools/current CLI contract;
the team ledger does not schedule processes or enforce Cedar. Resolve missing
native capabilities explicitly. Use `$agent-team-manage` for tasks and
`$agent-team-handoff` when changing owners/harnesses.

## Evidence and recovery

Report generated paths, roles and rationale, chosen model policy, native support
level, unresolved ownership/configuration and the next authorized action. Never
report export as live execution. Node 22+ runs the compiled package without a
root checkout or runtime dependencies. Maintainers rebuild the `.mts` source
with pinned TypeScript 7.0.2 under `runtime/`; full and mini ship identical bytes.

The local state is a coordination record for trusted collaborators, not a
distributed authorization service. See [task and handoff contracts](references/task-handoff.md)
for revision/lock recovery and [models and memory](references/models-memory.md)
for optional shared services and Karpathy boundaries. Existing KBD state stays
authoritative; never hand-edit its generated projections.
4 changes: 4 additions & 0 deletions resources/skills/agent-team-creator/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
interface:
display_name: "Agent Team Creator"
short_description: "Choose and create a useful coding agent team"
default_prompt: "Use $agent-team-creator to help me choose and create a team for my task."
11 changes: 11 additions & 0 deletions resources/skills/agent-team-creator/assets/intake.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"id": "checkout-team",
"outcome": "Implement an accessible checkout with verified payment error handling",
"complexity": "complex",
"areas": ["code", "design", "security", "docs"],
"deliverables": ["Checkout implementation", "Integration evidence", "Operator documentation"],
"budget": "balanced",
"review": true,
"harness": "codex",
"scope": "project"
}
146 changes: 146 additions & 0 deletions resources/skills/agent-team-creator/references/manifest.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
# Team manifest and CLI

The portable manifest describes intent and coordination. It is not a native team
API, a scheduler, an authentication credential, or a Cedar policy. The native
harness remains the execution and permission authority.

## Minimum expert request

Save this as `team-request.json` in the target project. Paths in requests resolve
against the CLI working directory. Keep state in a local, access-controlled
directory; it contains prompts, evidence and optional memory content.

```json
{
"state": ".agent-team/state.json",
"team": {
"schemaVersion": 1,
"id": "feature-team",
"outcome": "Implement the agreed feature and supply integration evidence",
"scope": "project",
"harness": "codex",
"roles": [
{
"id": "implementer",
"description": "Implement the agreed feature",
"prompt": "Read the project instructions and acceptance criteria. Implement the complete behavior before verification. Report changed files and evidence.",
"skills": [],
"owns": ["src/feature/"],
"inputs": ["Acceptance criteria"],
"outputs": ["Implementation", "Integration evidence"],
"dependsOn": [],
"modelPolicy": { "tier": "medium", "capabilities": ["function_calling"] }
}
]
}
}
```

`scope` chooses project, UAR or BossFang administration intent. It does not select
a network instance or transfer execution authority. `harness` is one of the eight
execution targets. BossFang is a separate export target; it may coordinate UAR or
its own native runtime as configured outside this skill.

Role IDs are stable portable lowercase identifiers. Role inputs/outputs describe
the handoff contract; `dependsOn` is validated for references and cycles. Native
runtime dependency behavior varies; portable dependencies also gate local tasks.
`owns` is a planning agreement, not an enforced filesystem permission. Assign
disjoint write ownership before parallel work, and let reviewers read broadly.

## Model binding

Optional `modelPolicy` exists on the team and each role. `skillPolicies` maps
installed skill IDs to the same policy shape. Tasks can provide `modelPolicy`.
Fields: `model`, `tier` (`low`, `medium`, `hard`), `capabilities` (string array),
`maxInputPerMillion`, `maxOutputPerMillion` (nonnegative USD estimates).

Use `models-select` before invocation; tier/cost/capability intent is not itself
a native model ID. The exporter translates explicit team/role `model` values
where supported. Skill/task policy selection must be applied through the native
invocation controls, or by updating an appropriate role and re-exporting.

## Preserving every native option

The common schema deliberately does not enumerate every native harness setting.
Use the complete current native documentation linked from `native-harnesses.md`:

- `roles[].native.<target>` overrides that role's generated native fields.
- `native.<target>.options` supplies target-specific settings or defaults. Its
meaning is explicit in the adapter reference; some targets preserve it in
`native-options.json` for manual application rather than inventing a config path.
- `native.<target>.files` maps relative paths to exact UTF-8 text for native hooks,
MCP settings, plugin source, profiles, configuration or other options.
- Each team-native wrapper includes `source` and `version` recording the contract
the user chose. Native role overrides and the built-in source contract are
retained in the export receipt too.

Example extension inside `team`:

```json
{
"native": {
"codex": {
"version": "installed version recorded by operator",
"source": "https://developers.openai.com/codex/config-reference/",
"options": { "agents": { "max_threads": 4 } },
"files": { ".codex/team-notes.md": "Project-specific native configuration notes\n" }
}
}
}
```

Unknown common fields fail to prevent silently misspelled configuration. Native
options are preserved without claiming their semantic validity. Objects merge
recursively and arrays replace. JSON `null` cannot be serialized to TOML; omit
the field or supply a separate native file. Native file paths cannot escape the
proposal root, use Windows-reserved names, or collide with generated files,
case variants or directories. Generated files cannot be silently replaced by
opaque files. Change supported fields through role/options overrides, or author
an independently reviewed native file outside the automatic export path.

The generated receipt identifies source-only versus live verification. Validate
against the installed version before applying options. Do not commit real
credentials in any native file; use the target's environment/credential facility.
This escape hatch preserves future options; it does not assert future support.

## CLI protocol

All commands use one UTF-8 JSON request and return JSON. Malformed requests and
conflicts exit nonzero. No shell quoting or shell-specific redirection is needed:

```text
node <skill>/scripts/cli.mjs <command> --input request.json
```

| Command | Request |
|---|---|
| `guide` | Intake fields from `assets/intake.json`, followed by `ownership` mapping role IDs to nonempty arrays of project-relative output paths/globs. Missing scope returns questions and `proposedRoles`; only `ready: true` returns `team` |
| `validate` | `team` manifest |
| `init` | `team`, new `state` filename |
| `status` | `state` |
| `team-update` | `state`, `expectedRevision`, replacement same-ID `team` |
| `export` | `team` or `state`, `target`, new `out` directory |
| `task`, `complete-kbd` | See `task-handoff.md` |
| `handoff-create`, `handoff-accept` | See `task-handoff.md` |
| `models-discover`, `models-select` | See `models-memory.md` |
| `memory-queue`, `memory-publish` | See `models-memory.md` |

Exports are proposals, never in-place installation. If a write fails partway,
the incomplete directory remains inspectable and lacks its final receipt. Choose
a new output directory for a retry. No global tool installation or remote agent
registration occurs through this CLI. Skills guide native installation and
execution using the user's authorized target and the actual harness contract.

## Building and distributing

`runtime/package.json` pins TypeScript 7.0.2 and Node type declarations. Run
`npm ci --prefix <skill>/runtime` then `npm run build --prefix <skill>/runtime`
when maintaining source. Runtime consumers need only Node.js 22+ and the copied
skill files; they do not need npm, TypeScript or the repository checkout. Full
and mini distribute identical source and emitted `.mjs` files. Each sibling skill
declares its dependency on this creator companion in its instructions.

The four SKILL.md frontmatters follow the
[AgentSkills specification](https://agentskills.io/specification): version and
comma-separated tags live as string-valued metadata. Existing pack extensions
remain accepted for backward compatibility but are not required by these skills.
Loading
Loading