paniolo-config-init — scaffold paniolo.config.json
Generate a starter paniolo.config.json. The scanner only reads this file — it
never writes it — so the file the user ends up with is whatever this skill writes.
When to use
Use this skill when the user wants to create or set up a paniolo.config.json, or asks
which AI vendors/harnesses a repo should support — for example: "init paniolo config",
"set up paniolo.config.json", "which AI vendors should this repo support", or the
/paniolo-config-init trigger.
Flow
1. Check for an existing config
Look for paniolo.config.json at the repo root. If present, read it and show the
current harnesses value before continuing — don't silently overwrite a file someone
already tuned.
2. Detect likely vendors from existing adapters
Glob for adapter markers already in the repo as a hint, not a decision:
| Marker | Harness |
|---|---|
CLAUDE.md, .claude/ |
claude |
.cursor/, .cursorrules |
cursor |
.github/copilot-instructions.md |
copilot |
AGENTS.md, .codex/ |
codex |
GEMINI.md, .gemini/ |
gemini |
.agents/ |
antigravity |
3. Ask which AI vendors/harnesses to support
Ask the user to pick from the six harnesses the scanner understands — claude,
cursor, copilot, codex, gemini, antigravity — noting which ones Step 2
detected as likely defaults. If the agent supports a multi-select prompt, use it;
otherwise ask in plain text and accept a comma-separated list.
If the user picks none, or says "all" / "no preference", leave harnesses out of the
config entirely — an empty/absent list means "no declared scope," and every
harness-specific rule still runs, the same as omitting --harness on the CLI.
4. Write the config
Write paniolo.config.json at the repo root, kept minimal — this config grows with the
rule set, so don't pre-populate rules with every rule ID:
{
"$schema": "https://paniolo.ai/schemas/paniolo.config.v1.json",
"extends": ["@paniolo/cli/presets/meta-harness.json"],
"harnesses": ["claude", "cursor"],
"rules": {},
"options": {}
}
harnesses— exactly what the user picked, lowercase, matching the CLI's--harnessflag and a report'sharnessesfield. Omit the key when the user chose "all" rather than writing an empty array.extends— default to@paniolo/cli/presets/meta-harness.jsonunless the user names a different preset (paniolo-reference,scan-legacy,guidance-strict,boundary-minimal).
5. Confirm and offer a scan
Show the written file's contents. Offer to run
npx --yes @paniolo/cli scan --format json . (the paniolo-scan skill) to confirm the new
config loads and to get a baseline score.
Guardrails
- Never invent a
harnessesvalue the user didn't pick or explicitly confirm from a detected default. - Don't write
rules,guidance, orboundaryoverrides unless asked — this skill scaffolds, it doesn't tune. - Never overwrite an existing
paniolo.config.jsonwithout showing its current contents and getting explicit confirmation first.
About Paniolo
Paniolo builds precision infrastructure for autonomous engineering — the harness layer around your coding agents: project intelligence, observability, guardrails, and the structural patterns that turn generated code into production-grade output.
paniolo.config.json is how a repo tells paniolo scan (via @paniolo/cli) which harnesses it
supports and how to weigh its rules. This skill scaffolds that file; the scanner reads it.