chore(830-lint-static-analysis-gaps): prune epic brief now that the topic is fully landed - #1004
Conversation
…opic is fully landed docs/topics/lint-static-analysis-gaps/PLAN.md is a contract-tier topic doc (docs/conventions/topic-docs/README.md): committed on the task branch only, pruned before merge once the topic's outcome lands. All 6 sub-issues (#831-#836) and the related setup-lifecycle epic (#837) are merged and closed; epic #830 is closed. Its content is preserved in git history (commit 4a289ab, PR #829) and summarized in #830's closing comment. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 1m 18s —— View job PR Review — chore(830-prune-epic-brief)
Verdict: Approve. This is a clean lifecycle prune with one minor observation worth noting. What changedPure deletion — Alignment with conventionThe PR body correctly cites § "Contract-slice lifecycle" in Content is durably preserved in git history at commit One observation: stale path in CHANGELOG
That path is now a dead reference. This is a changelog entry (historical record of what informed the change at authoring time), so a dead path here is low-severity — it doesn't break anything and the content is traceable through git. No action required, but it's worth being aware that future readers following that path will find it gone. A git-history note in the PR body (already present) is the right mitigation. No concerns
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2876e99313
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
docs/topics/lint-static-analysis-gaps/PLAN.md is pruned by this same PR; its reference in the 0.9.0 entry would dangle for anyone verifying "Brief item 3" later. Point at the durable epic/issue instead. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 42s —— View job PR Review — chore(830-prune-epic-brief)
Verdict: Approve. The follow-up commit addresses the one open observation from the initial review. What changed across both commits
CHANGELOG fix (
|
Summary
docs/topics/lint-static-analysis-gaps/PLAN.mdis a contract-tier topic doc perdocs/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):Epic Brief (pruned)
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):
typos -w), consumer_typos.tomlancestor 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.
gobatch 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 perthe pick-for-the-problem discipline; criteria: official/authoritative, maintained,
feature-fit. golangci-lint is batch-only by design (package-scope analysis, per its FAQ).
cross-cutting.yaml(on-disk link/anchor integrity; gating in CI,no network).
python.yamlcheck-cmd (CI gates it; local batch was ruff-only).dotnetecosystem entry detects analyzer/.editorconfigconfigurationpresence at runtime each run; skips with a visible notice when absent. No assumptions about
consumer state; .NET stays batch-lane only.
statusMessage(during run),systemMessage(failure/notable action), and the hook-telemetry OTel envelope. Grounded incurrent 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.
reference-integrity) — sub-issue routed to
ci-workflows/standards: local lane must invokethe same owned source (pointer-not-copy), which needs a small distribution decision those
repos own.
Constraints
native-first, cross-platform (Windows/macOS/Linux), setup contract, graceful degradation.
hook plugin; slow / repo-wide / package-scope tool = toolchain batch entry; both when both fit.
pattern); hook-precision convention bounds false-positive noise.
Acceptance criteria
(explore/research → plan → implement → review).
consumer
.claude/ecosystems/*.yamloverride ladder unchanged.by every fleet hook; conformance audited.
coverage.
Captured assumptions
ci-runner); Go hook plugin justified by completeness preference(user choice) despite one consumer.
Out of scope
dissatisfaction, if it persists after reading the ADR rationale, is an ADR-supersede
discussion in
standards.medley, TS/JS component admission, medley lychee) — standards epic below.
Deferred questions
or Biome ships YAML support (unshipped as of the 2026 roadmap). Facts: yamllint validate-only;
yamlfmt autofixes but imposes defaults without consumer config.
Facts:
dirmode (detect/protect deprecated v8.19), entropy false-positive noise, no autofix.dotnet format whitespace --folderfast 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,
Slow performance for --include with single file dotnet/format#757. Trigger: an MSBuild-free style/analyzer path
appears upstream.
sub-item of the observability convention).
Related epics (owned elsewhere)
(
melodic-software/standards) — still open, separate repo (standards#230).Plan
(Empty —
/planning:planfills this per epic sub-item.)Verification
git rm -ronly — no other changes; no build/test impact.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).