PILOT BOOK — THE IMPACT-SURFACE SKILL
A passage plan is only as good as the footprint it declares. This skill is the shared discipline for deriving that footprint — from a PRD, spec, ticket, or plan-mode output — so every agent and human on a team declares work the same way and the traffic advisories stay comparable. It ships as skills/impact-surface/SKILL.md in the Farled repo: agents whose harness loads skills install it; everyone else pastes it into AGENTS.md or their system prompt. Dev-agnostic by construction.
Walk the categories; for each, ask does this work touch it? Most tasks hit three or four — a task that hits all of them should probably be split.
| Category | Typical paths | Often forgotten? |
|---|---|---|
| Primary code | the feature's own packages/modules | — |
| Shared contracts | types, schemas, protocol files, API clients | ★ the #1 collision source |
| Data model | migrations, ORM models, seeds | ★ ordering conflicts |
| API surface | routes, handlers, OpenAPI specs | |
| Tests | unit/integration files beside the code | |
| Localization | locale/message files | ★ every-PR files — expect overlap |
| Docs & records | README, docs pages, ADRs, changelogs | |
| Config | CI, build, env, feature flags | ★ high blast radius |
farled_file_plan {
"intended_paths": ["src/checkout/**", "src/lib/currency.ts"],
"intended_symbols": ["renderSummary"],
"summary": "ISO-460: per-org MFA policy",
"confidence": "high"
}
| Advisory | Your move |
|---|---|
| clear | Proceed. |
| sequence_after | Someone filed overlapping water first. Rescope out of the overlap, wait for their plan to complete, or coordinate explicitly — never silently proceed into it. |
| coordinate | Someone is already editing inside your footprint. Check farled_query_active_work for the concrete paths and talk first. |
Write your PRD's "Files to edit" section as paths and globs, one per line. An agent implementing the PRD derives its footprint by copying that section — the PRD becomes machine-readable intent for free, and reviewers can sanity-check the blast radius before a line of code exists.