/** * `roadmap-sync-gh-missing` (report tier): the project has configured the roadmap→GitHub * Issues projection, and `gh` is not installed here. * * **Why `report` and not `confirm`, specifically.** A `confirm`-tier migration applies * unprompted under `--yes`, and CI is exactly the environment where `gh` is legitimately * absent — so a confirm-tier remover would delete a working project's `roadmap.sync` * section on the first unattended `aidlc doctor --yes`. The remedy here is a decision * (install the tool, or drop the config), and doctor may not make it. Precedent: * `compliance-pack-drift.ts` uses `report` for the two conditions whose only fix is a * decision, and this is one of those. Nothing here writes anything, under any tier or flag. * * **Presence, not authentication.** `check` is documented in `../types.ts` as pure state * inspection shared verbatim by dry-run and real runs. `gh auth status` can reach the * network, so putting it on doctor's default path would make an offline run report a * problem that is not there. `resolveGhOnPath` walks `PATH` and tests execute permission — * no subprocess, no network. Authentication stays with sync's own preflight, which has the * better error message for it. * * **Nothing here spawns anything at all**, which is a stronger claim than "does not run * `gh`". The primary checkout comes from `ctx.primaryProjectRoot`, already resolved by * `doctor/context.ts`, rather than from `roadmap/paths.ts`'s `primaryCheckout` — that * helper shells out to `git rev-parse`, and reaching for it would have quietly made the * no-subprocess claim false while every test still passed. * * **Why the default path and not behind a flag.** Because it never shells out, there is no * "doctor shells out" precedent to gate; because it is `applicable: false` for any project * without a `roadmap.sync` section, a project that never opts in pays nothing; and * `aidlc doctor` has no `--all` flag, so hiding it would mean inventing machinery for a * check that costs a handful of `stat` calls. * * Requirements: issue-tracker-in-init/AC-23 … issue-tracker-in-init/AC-30 */ import type { CheckResult, DoctorContext, Migration } from '../types.js'; /** * The single source of pending-ness, with the resolved `gh` path supplied. * * Exported and parameterised so both branches are testable without touching `PATH`, and so * nothing else can compute pending-ness — the rule `../types.ts` states, which is what * keeps a dry run and a real run from disagreeing. */ export declare function ghMissingCheck(ctx: DoctorContext, ghPath: string | null): CheckResult; export declare const roadmapSyncGhMissing: Migration; //# sourceMappingURL=roadmap-sync-gh-missing.d.ts.map