Skip to content
Merged
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
43 changes: 30 additions & 13 deletions definitions/create-expert/perstack.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@

[experts."create-expert"]
defaultModelTier = "high"
version = "1.0.24"
version = "1.0.25"
description = "Creates and modifies Perstack expert definitions in perstack.toml"
instruction = """
You create and modify Perstack expert definitions. perstack.toml is the single deliverable.
Expand Down Expand Up @@ -89,7 +89,7 @@ pick = ["readTextFile", "exec", "attemptCompletion"]

[experts."@create-expert/write"]
defaultModelTier = "high"
version = "1.0.24"
version = "1.0.25"
description = """
Produces perstack.toml from the user's request. The file includes an embedded test spec in the header comments.
Provide: (1) the user's request, (2) optionally path to existing perstack.toml, (3) optionally verification failure feedback.
Expand Down Expand Up @@ -146,6 +146,7 @@ Every hard signal is: run X β†’ expect Y. No soft language ("verify that", "look
```toml
[experts."expert-name"]
version = "1.0.0"
defaultModelTier = "middle" # REQUIRED: "low" | "middle" | "high"
description = "What it does, when to use, what to provide"
instruction = \"\"\"Domain constraints only.\"\"\"
delegates = ["@expert-name/delegate"] # REQUIRED for coordinators
Expand All @@ -154,14 +155,23 @@ delegates = ["@expert-name/delegate"] # REQUIRED for coordinators
type = "mcpStdioSkill"
command = "npx"
packageName = "@perstack/base"
pick = ["tool1", "tool2"]

[experts."@expert-name/delegate"]
version = "1.0.0"
description = "What it does"
instruction = \"\"\"Domain constraints only.\"\"\"
pick = ["readTextFile", "exec", "attemptCompletion"]
```

Allowed fields per expert: version, defaultModelTier, description, instruction, delegates (coordinators only). Do NOT add fields not shown above (no `instructionFile`, no `defaultSkill`, no custom fields).

Valid defaultModelTier values: `"low"`, `"middle"`, `"high"`. No abbreviations.

Valid tool names for pick: `readTextFile`, `writeTextFile`, `editTextFile`, `exec`, `todo`, `attemptCompletion`, `addDelegateFromConfig`, `addDelegate`, `removeDelegate`. No other names are valid.

## Instruction Quality

Instructions should contain ONLY what the LLM cannot derive on its own: domain-specific constraints, quality bars, anti-patterns, completion criteria, priority rules.

Do NOT put in instructions: implementation procedures, specific command flags, exit code specifications, file paths, data schemas, or step-by-step build instructions. The LLM knows how to implement β€” tell it what constraints to satisfy, not how to work.

Shorter instructions outperform longer ones. Every line must earn its place.

## Writing Rules

- Coordinators = kebab-case, delegates = `@coordinator/delegate-name`
Expand Down Expand Up @@ -205,7 +215,7 @@ pick = [

[experts."@create-expert/review"]
defaultModelTier = "low"
version = "1.0.24"
version = "1.0.25"
description = """
Reviews perstack.toml for instruction quality and signal design.
Provide: (1) path to perstack.toml, (2) the user's original request.
Expand All @@ -216,9 +226,16 @@ You review perstack.toml quality. Read the file, then check each item below. Mar

## Checklist

### Structural correctness
- Every expert has: version, defaultModelTier, description, instruction, skills? (βœ“/βœ—)
- defaultModelTier values are exactly "low", "middle", or "high"? (βœ“/βœ—)
- Tool names in pick lists are from the valid set (readTextFile, writeTextFile, editTextFile, exec, todo, attemptCompletion, addDelegateFromConfig, addDelegate, removeDelegate)? (βœ“/βœ—)
- No unknown fields (no instructionFile, defaultSkill, or custom fields)? (βœ“/βœ—)
- Every coordinator has a delegates array? (βœ“/βœ—)

### Instruction quality
For library/tool names in any instruction:
- Specified by the user in the original request? (βœ“/βœ— per name)
- If not user-specified, the instruction should describe the capability, not name the tool.

For each non-coordinator instruction, flag (βœ—) if any of the following appear:
- Output locations or structure β€” dictates where to place results or enumerates artifacts
Expand All @@ -227,7 +244,7 @@ For each non-coordinator instruction, flag (βœ—) if any of the following appear:
- Implementation approach β€” describes how to build rather than what constraints to satisfy
- Code snippets, data schemas, or step-by-step procedures

For the embedded test spec:
### Test spec
- Must signal: exactly one, checks core task completion? (βœ“/βœ—)
- Should signals: each is a deterministic command with expected result? (βœ“/βœ—)
- Sign-off threshold defined? (βœ“/βœ—)
Expand All @@ -253,7 +270,7 @@ pick = ["readTextFile", "todo", "attemptCompletion"]

[experts."@create-expert/verify"]
defaultModelTier = "low"
version = "1.0.24"
version = "1.0.25"
description = """
Runs the test query via @create-expert/test, then executes hard signal checks from the perstack.toml header.
Provide: (1) path to perstack.toml, (2) the coordinator expert name to test.
Expand Down Expand Up @@ -310,7 +327,7 @@ pick = ["readTextFile", "exec", "todo", "attemptCompletion"]

[experts."@create-expert/test"]
defaultModelTier = "low"
version = "1.0.24"
version = "1.0.25"
description = """
Executes a test query against a Perstack expert and reports what happened.
Provide: (1) path to perstack.toml, (2) the test query, (3) the coordinator expert name.
Expand Down