chore(836-fleet-adoption): prune leaked topic-doc PLAN.md from main - #966
Merged
Conversation
docs/topics/836-fleet-adoption/PLAN.md is a contract-tier topic doc (docs/conventions/topic-docs/README.md): tracked on the task branch only, pruned before merge. The prune step was missed before PR #945 squash-merged, so it landed on main. Removing it now; its content is already preserved in PR #945's body.
|
Claude finished @kyle-sexton's task in 44s —— View job PR Review
Verdict: clean — no issues found. This PR is exactly what it says: a single Verified:
Good to merge. |
This was referenced Jul 22, 2026
kyle-sexton
added a commit
that referenced
this pull request
Jul 22, 2026
…opic is fully landed (#1004) ## Summary `docs/topics/lint-static-analysis-gaps/PLAN.md` is a contract-tier topic doc per `docs/conventions/topic-docs/README.md`: committed on the task branch only, pruned before merge once the topic's outcome lands (§"Contract-slice lifecycle"). It was added by PR #829 and never pruned. Epic #830 and all 6 sub-issues (#831-#836) plus the related setup-lifecycle epic (#837) are now merged and closed, so the topic's outcome has fully landed — pruning now, mirroring the same fix already applied to #836's leaked plan doc in PR #966. Content preserved for the record (from commit `4a289ab389`, PR #829): <details> <summary>Epic Brief (pruned)</summary> # Lint / static-analysis gaps ## Brief ### TLDR Close the fleet's lint/static-analysis gaps with one epic in this repo (typos hook plugin, Go coverage in both lanes, lychee-offline + pyright batch additions, .NET runtime guard, hook-observability convention, bespoke-guard routing), plus two epics owned elsewhere (setup-lifecycle convention here as its own design effort; standards adoption sweep + ecosystem-declaration in `melodic-software/standards`). ### Goal Local lanes catch what CI gates, so agents fix findings at edit time instead of burning commit–push–CI round-trips. Every addition follows the plugin philosophy: consumer-config-driven, zero shipped opinions, runtime detection over assumptions, advisory hooks that auto-fix silently and surface only residual unfixables. Epic sub-items (discuss-first honored — file only on explicit request; epic + sub-issues shape): 1. **typos hook plugin** — per-file autofix (`typos -w`), consumer `_typos.toml` ancestor walk-up, false-positive remediation via consumer allowlist entries (`extend-words` / `extend-identifiers` / `extend-ignore-re`), advisory residual-only context, hook-precision + hook-telemetry conventions. 2. **Go coverage, both lanes** — new `go` batch ecosystem default (golangci-lint v2, format, `go mod tidy`; govulncheck optional) and a Go format hook plugin. Formatter selection (gofmt / goimports / gofumpt / `golangci-lint fmt`) is an implementation-time field survey per the pick-for-the-problem discipline; criteria: official/authoritative, maintained, feature-fit. golangci-lint is batch-only by design (package-scope analysis, per its FAQ). 3. **lychee-offline** added to `cross-cutting.yaml` (on-disk link/anchor integrity; gating in CI, no network). 4. **pyright** added to `python.yaml` check-cmd (CI gates it; local batch was ruff-only). 5. **.NET batch guard** — `dotnet` ecosystem entry detects analyzer/`.editorconfig` configuration presence at runtime each run; skips with a visible notice when absent. No assumptions about consumer state; .NET stays batch-lane only. 6. **Hook-observability fleet convention** — every fleet hook emits `statusMessage` (during run), `systemMessage` (failure/notable action), and the hook-telemetry OTel envelope. Grounded in current official hooks docs at authoring time (no native user-visible hook UI exists as of 2026-07-21; OTel events + author-emitted messages are the sanctioned surfaces). Optional sub-item: upstream feature request for a native verbose-hooks UI toggle. 7. **Bespoke CI guards** (comment-hygiene, exec-bit, machine-specific-paths, reference-integrity) — sub-issue routed to `ci-workflows`/`standards`: local lane must invoke the same owned source (pointer-not-copy), which needs a small distribution decision those repos own. ### Constraints - Plugin philosophy governs: repo/user/machine/org-agnostic, two-lane convention posture, native-first, cross-platform (Windows/macOS/Linux), setup contract, graceful degradation. - Lane rule (locked): fast (<~2s), per-file, auto-fixing, consumer-config-discovering tool = hook plugin; slow / repo-wide / package-scope tool = toolchain batch entry; both when both fit. - Hooks auto-fix silently, never block, surface only residual unfixables (markdown-format pattern); hook-precision convention bounds false-positive noise. - New plugins conform to the setup-lifecycle convention once that epic lands. ### Acceptance criteria - Each epic sub-item lands as its own planned change with the normal pipeline (explore/research → plan → implement → review). - typos + Go hook plugins pass the plugin contract gate and fleet conformance audit. - Batch additions (go, lychee-offline, pyright, dotnet guard) are rung-4 defaults only — consumer `.claude/ecosystems/*.yaml` override ladder unchanged. - Hook-observability convention documented as an owner doc (convention registry row) and adopted by every fleet hook; conformance audited. - CI/local parity: gaps identified 2026-07-21 (Go toolchain, lychee-offline, pyright) have local coverage. ### Captured assumptions - No work-machine tool-install restriction (winget/brew acceptable). User to correct if wrong. - Single Go repo today (`ci-runner`); Go hook plugin justified by completeness preference (user choice) despite one consumer. ### Out of scope - Standards distribution-model redesign — model is settled (ADR-0001, accepted 2026-07-10); dissatisfaction, if it persists after reading the ADR rationale, is an ADR-supersede discussion in `standards`. - Consumer-config adoption gaps (ruff/pyright targets, dotnet-analysis to itinerary-planner / medley, TS/JS component admission, medley lychee) — standards epic below. - Setup-lifecycle convention design — own epic below. ### Deferred questions - YAML lint/format plugin — arbiter: USER-RESERVED. Trigger: a CI YAML gate lands in the fleet, or Biome ships YAML support (unshipped as of the 2026 roadmap). Facts: yamllint validate-only; yamlfmt autofixes but imposes defaults without consumer config. - gitleaks per-edit hook — arbiter: USER-RESERVED. Trigger: a local leaked-secret incident. Facts: `dir` mode (detect/protect deprecated v8.19), entropy false-positive noise, no autofix. - `dotnet format whitespace --folder` fast path — arbiter: USER-RESERVED. Whitespace-only today (bypasses MSBuild/restore; the only sub-2s path — full/style/analyzer modes pay project-load, ~1.3s minimum single file). Links: <https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-format>, <dotnet/format#757>. Trigger: an MSBuild-free style/analyzer path appears upstream. - Upstream feature request for native verbose-hooks UI — arbiter: /planning:plan (optional sub-item of the observability convention). ### Related epics (owned elsewhere) - **Setup-lifecycle convention** (this repo, own design session) — DONE (#837, PR #990). - **Standards adoption sweep + ecosystem-declaration enhancement** (`melodic-software/standards`) — still open, separate repo (`standards#230`). ## Plan (Empty — `/planning:plan` fills this per epic sub-item.) </details> ## Verification - [x] `git rm -r` only — no other changes; no build/test impact. - [x] Content fully preserved in git history (commit `4a289ab389`) and in this PR body. ## Related No linked issue — epic #830 is already closed (manually, since all 6 sub-issues plus the related setup-lifecycle epic #837 were done); this is a follow-up hygiene fix, not new epic work. Related PRs: #829 (added the brief), #966 (same fix applied to #836's leaked plan doc), #990 (#837, the last related item to land before this cleanup). --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
docs/topics/836-fleet-adoption/PLAN.mdis a contract-tier topic doc perdocs/conventions/topic-docs/README.md: tracked on the task branch only, pruned before merge. PR #945 squash-merged before this prune step ran, so the file leaked ontomain. This PR removes it.Its content is already preserved in PR #945's body (pasted there at PR creation).
Related
main; not closed by this PR (that PR is already merged).No linked issue: this is a mechanical cleanup with no separate tracking issue.
Test plan
git rmonly — no other changes; no build/test impact.