How this skill is triggered — by the user, by Claude, or both
Slash command
/tribunal:configThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Resolves layered configuration from `tribunal.yaml` by deep-merging a `common` block with CLI tool-specific overrides. Every Tribunal feature (debate, agent selection, coverage enforcement) reads its settings through this resolution system.
Resolves layered configuration from tribunal.yaml by deep-merging a common block with CLI tool-specific overrides. Every Tribunal feature (debate, agent selection, coverage enforcement) reads its settings through this resolution system.
tribunal.yaml has a common block and optional tool-specific blocks:
common:
timeout_seconds: 300
sandbox: docker
coverage:
lines: 100
branches: 100
claude:
timeout_seconds: 600
gemini:
coverage:
branches: 90
The effective config for a tool is computed as:
effective_config = deep_merge(common, tool_specific[tool_name])
| Type | Behavior |
|---|---|
| Scalar | Tool-specific value wins |
| Object | Recursively merged (keys combine) |
| Array | Tool-specific replaces entirely |
| Missing | Common value used as-is |
If a tool has no block in the YAML, the common config is returned unchanged.
node lib/resolve-config.js <path-to-tribunal.yaml> <tool-name>
Outputs the resolved config as JSON to stdout.
const fs = require('fs');
const { resolveConfig, deepMerge, parseYaml } = require('./lib/resolve-config');
const yamlText = fs.readFileSync('tribunal.yaml', 'utf8');
const config = resolveConfig(yamlText, 'claude');
// config is the merged result
| Section | Description |
|---|---|
timeout_seconds | Max execution time per task |
sandbox | Sandbox mode: docker, platform, or none |
coverage | Code coverage thresholds (lines, branches, etc.) |
enforcement | Coverage enforcement rules and commands |
debate | Brainstorming debate settings (rounds, agents) |
agent_selection | Agent priority and selection strategy |
escalation | Retry and escalation limits |
health_check | Per-task health check toggle |
The default template is at templates/tribunal.yaml. Copy it to your project root and customize as needed.
npx claudepluginhub jpeggdev/buildwithjpegg --plugin tribunalReads project config from .agents.yml and .agents.local.yml with local overrides using dot notation for nested fields like tech_stack or plan.auto_create_task. Invoke with field and optional default value.
Documents .claude/plugin-name.local.md pattern for per-project Claude Code plugin configuration using YAML frontmatter and markdown. Guides reading settings from bash hooks and commands.
Implements per-project plugin configuration via .claude/*.local.md files with YAML frontmatter. Covers Bash hook parsing, skill/agent reading, patterns for hooks/agent/loop state, security, and best practices.