Skip to content
EN · PT

Gate: plan-source-declared

The source the plan names has the adapter’s plan in needs:.

Property Value
Checker plan-source-declared
Confronts plan
Blocking by default — new project yes
Blocking by default — existing project no — informs

Confronts a plan against the dependency it wrote in PROSE and never declared in needs:: the plan names a source — who is going to build the adapter for it?

The real case, measured in the reference app. Plan 0008 (Frontend/Web) said Fonte: **GA4**, and it is the architectural exception of the project, and declared only needs: plans/0005-home-e-indice.md. The GA4 adapter came from plan 0002, and that dependency existed only in the prose.

What happened: 0002 was revised (PLTFR-R0002) and Ga4Adapter was REMOVED, with a correct argument — no document of the project sustained it. 0008 stayed intact, depending on a source nobody was going to build any more. Both plans remained internally coherent, and the contradiction only surfaced months later, when 0008 was started.

Why no gate caught it, and what this one separates from its neighbours. dependency-honored confronts the needs: that is DECLARED; here the defect is the needs: that is MISSING. plan-seeds-valid looks at what the plan promises to CREATE, not at what it promises to CONSUME. This is the version, between PLANS, of step 5 of the review guide (“the prose ages”): nobody touched 0008, and it became wrong anyway — because another document changed.

What it measures. A source line (Fonte:/Fontes:) names one or more sources in bold. For each one, the gate looks for the corresponding adapter among the seeds of ALL plans. If the adapter exists in another plan and this one does not declare it in needs:, it fails.

gates:
- name: plan-source-declared
on: [plan]
check: plan-source-declared

Source: checker · its spec