Back to Signal Feed
CodeTracked since May 18, 2026

enforce explicit validation for Kilo subagent frontmatter

RuleSync replaces the loose alias-based frontmatter handling for Kilo subagents with an explicit schema and runtime validation path, so supported fields like `temperature`, `model`, and `hidden` are now declared, type-checked, and enforced when reading subagent configs.

KiloSubagentKiloSubagentFrontmatterSchemaOpenCodeStyleSubagentFrontmatterSchemavalidate()

What Happened

  • RuleSync replaces the loose alias-based frontmatter handling for Kilo subagents with an explicit schema and runtime validation path, so supported fields like `temperature`, `model`, and `hidden` are now declared, type-checked, and enforced when reading subagent configs.
  • RuleSync replaces the loose alias-based frontmatter handling for Kilo subagents with an explicit schema and runtime validation path, so supported fields like `temperature`, `model`, and `hidden` are now declared, type-checked, and enforced when reading subagent configs.
  • 1 evidence item attached for review.

What is Different

Before

Scattered source updates, isolated context, and manual follow-up across multiple feeds.

Now

This change introduces a dedicated `KiloSubagentFrontmatterSchema` with the full set of runtime-supported frontmatter fields, and explicitly uses it in `KiloSubagent.validate()` and `fromRulesyncSubagent` parsing so invalid field types are rejected at runtime instead of being silently accepted.

Why Track This

Why It Matters

Users configuring Kilo subagents in RuleSync will now get immediate, clear failures for bad frontmatter values (for example, `temperature: "hot"`) instead of proceeding with silently invalid configuration, reducing misconfigured runs and hard-to-debug agent behavior; keep watching for any CI or deployment scripts that previously relied on permissive parsing and expect every config shape to pass. The PR also preserves passthrough for unknown future Kilo fields via `z.looseObject` and retains `global` passthrough behavior in `forDeletion()`, so compatibility is mostly additive while tightening correctness checks.

Impact

Users configuring Kilo subagents in RuleSync will now get immediate, clear failures for bad frontmatter values (for example, `temperature: "hot"`) instead of proceeding with silently invalid configuration, reducing misconfigured runs and hard-to-debug agent behavior; keep watching for any CI or deployment scripts that previously relied on permissive parsing and expect every config shape to pass. The PR also preserves passthrough for unknown future Kilo fields via `z.looseObject` and retains `global` passthrough behavior in `forDeletion()`, so compatibility is mostly additive while tightening correctness checks.

What To Watch Next

  • Watch whether KiloSubagent becomes a repeated pattern.
  • Track follow-up changes around Structured Outputs.
  • Compare future signals against this evidence trail.
  • Re-check risk flags: strict_frontmatter_validation_breaking_legacy_loose_configs, downstream_tools_depends_on_non_strict_parsing.
Open Topic TimelineOpen Technical EventOpen Original Sourcestrict_frontmatter_validation_breaking_legacy_loose_configs / downstream_tools_depends_on_non_strict_parsing

Supporting Evidence