Structured Sidecars
Extension manifests declare structured sidecar support in structured_sidecars.
Each key names a stable sidecar contract and each value is a boolean indicating whether the extension’s runners read or write that sidecar. Declare every sidecar a runner touches, including ones it only reads through a shared helper (for example scripts/lib/fix-results.sh): Homeboy core is moving to export sidecar env vars only for declared keys (Extra-Chill/homeboy#16451).
Supported keys:
lint.findings— writes normalized lint findings toHOMEBOY_LINT_FINDINGS_FILE.lint.producers— writes the lint producers that ran toHOMEBOY_LINT_PRODUCERS_FILE.fix.results— writes a JSON array of applied fix records toHOMEBOY_FIX_RESULTS_FILE.test.results— writes normalized test result counts toHOMEBOY_TEST_RESULTS_FILE.test.failures— writes parsed test failure details toHOMEBOY_TEST_FAILURES_FILE.test.coverage— writes normalized coverage data toHOMEBOY_COVERAGE_FILE.bench.results— writes benchmark result envelopes toHOMEBOY_BENCH_RESULTS_FILE.bench.responsiveness— appends one JSON object per line (JSONL) toHOMEBOY_BENCH_RESPONSIVENESS_FILE.fuzz.results— writes the fuzz campaign result object toHOMEBOY_FUZZ_RESULTS_FILE.fuzz.artifacts— writes fuzz artifacts into theHOMEBOY_FUZZ_ARTIFACTS_DIRdirectory.trace.results— writes trace result envelopes toHOMEBOY_TRACE_RESULTS_FILE.trace.artifacts— writes trace artifacts toHOMEBOY_TRACE_ARTIFACT_DIR.annotations— writes inline-review annotation JSON files toHOMEBOY_ANNOTATIONS_DIR.
Use false for unsupported contracts. Absence means the manifest has not been audited and should not be treated as support.
lint.findings v1
HOMEBOY_LINT_FINDINGS_FILE contains a JSON array of lint finding objects. Emit fields when known; use null for optional unknown values when a stable field is useful to consumers.
id— stable finding identity derived from tool, file, location, rule, and message.file— repository-relative path when available.line— 1-based line number when available.column— 1-based column number when available.severity—errororwarning.source— producing tool, for exampleeslint,phpcs,phpstan,rustfmt,clippy,swiftlint,gofmt, orgo vet.code— tool rule or diagnostic code.category— coarse grouping such asstyle,format, orcorrectness.message— human-readable diagnostic message.fixable— boolean indicating whether the tool can apply a fix automatically.fingerprint— stable hash for unchanged findings.excerpt— bounded source line excerpt when available.
test.failures v1
HOMEBOY_TEST_FAILURES_FILE contains a JSON array of test failure objects.
test_id— stable test identifier, usually package/module plus test name.suite— suite, package, class, or runner grouping when available.file— repository-relative test file when available.line— 1-based failure line when available.message— human-readable failure summary.failure_type—test_failurefor assertion/test failures orinfrastructurefor runner/package/setup failures.fingerprint— stable hash for unchanged failures.stdout_excerpt— bounded output excerpt relevant to the failure.stderr_excerpt— bounded stderr excerpt relevant to the failure.