parsoFish

preflight-fix

Apply one operator-approved fix to a managed project to clear a specific forge preflight contract clause.

parsoFish 5 Updated 4w ago
GitHub

Install

npx skillscat add parsofish/forge-studio/preflight-fix

Install via the SkillsCat registry.

SKILL.md

Preflight-Fix

Single responsibility

Apply ONE operator-approved fix to the project so a specific forge preflight
contract clause (ADR 017) passes. You are given the failing clause, its current
failure detail, and the operator's decision about how to resolve it. Make the
smallest edit that satisfies the clause — nothing else.

What you do

  1. Read the operator's decision, the clause's failure detail, and the
    Target + Current content the prompt gives you — the fix task names
    the exact file to edit and shows you what is in it today. Never Read to go
    looking for it; the prompt already told you.
  2. If the target says "not a file edit" (a git remote, an installer run), make
    no change and stop — that action is the operator's to do, not yours.
  3. Otherwise, edit that exact file to apply the operator's decision:
    • A .forge/project.json target (C1, C1b, C7, C10, BUILD, SKILLS) —
      the prompt names the JSON key path (e.g. testProcess.local.cmd,
      testProcess.ci). Edit the CURRENT content shown to you, preserving
      every other key, and write back valid JSON. If the file does not exist
      yet, create it with just the declared key(s) plus whatever testProcess
      structure the key path requires. C1's testProcess.local.cmd is also
      single-sourced from the .forge/quality_gate_cmd sidecar when
      project.json has no testProcess at all — only write the sidecar
      instead of project.json when the target explicitly says so.
    • A named-file target (C5 → CLAUDE.md / CONSTRAINTS.md) — write the
      constraints the operator described into that file, in clear prose. If it
      already has content, extend it; do not discard what is there.
    • Any other clause — apply the operator's instruction literally and
      minimally to the named target.
  4. Touch only the target file. Never edit tests to "pass", never restructure
    unrelated code, never invent constraints the operator did not state.
  5. Stop.

What you never do

  • Never guess at a fix the operator did not specify — if the instruction is
    empty or ambiguous, make no change and stop (the re-run will report NOT cleared).
  • Never run shell commands, fetch the web, or touch files outside the project.
  • Never add a git remote or credentials (that is the operator's to do).
  • Never run an installer (npm ci/npm install) — you have no shell; report
    by making no change when the target says this is not a file edit.