Skip to content

docs(skill): reference.md's CI table and test:ci omit the extension lint/typecheck checks #5811

Description

@JSONbored

Context

.claude/skills/contributing-to-loopover/reference.md section 1 ("Every CI check → local command → what fails it") documents every CI-gating check with its local reproduction command, and separately calls out local-only checks with no dedicated CI status (e.g. the engine package's own node --test suite). It also states, right after the table:

One command for everything except security: npm run test:ci.

Both claims are now inaccurate. .github/workflows/ci.yml's validate-code job runs four extension-lane steps, gated by github.event_name == 'push' || needs.changes.outputs.ui == 'true' (same trigger as the ui → * rows already in the table):

- name: Extension lint
  run: npm run extension:lint && npm run miner-extension:lint
- name: Extension typecheck
  run: npm run extension:typecheck && npm run miner-extension:typecheck

None of extension:lint, extension:typecheck, miner-extension:lint, miner-extension:typecheck appear anywhere in reference.md's CI table. Worse, they are also absent from npm run test:ci itself (verified: package.json's test:ci script chains git diff --check && ... && npm run ui:lint && npm run ui:typecheck && npm run ui:test && npm run ui:build — no extension:* or miner-extension:* commands anywhere in the chain). So a contributor touching apps/loopover-extension/** or apps/loopover-miner-extension/** has:

  1. no row in the CI table telling them these checks exist and gate the required validate status check, and
  2. no way to catch a failure locally even by running the documented "one command for everything except security" — test:ci silently skips them.

This is the same class of gap reference.md itself already warns about for the engine package's own test suite ("a past PR shipped a genuine, undetected ... regression ... specifically because test --workspace @loopover/engine isn't part of ci.yml"), just in the opposite direction: here the gap is in test:ci, not in ci.yml.

Requirements

  • Add a row (or rows) to reference.md's CI table for the extension lint/typecheck checks, following the existing ui → * row style, with their real trigger condition (push || ui==true, matching the existing ui → lint etc. rows).
  • Correct the "One command for everything except security" claim — either by adding the four missing commands to package.json's test:ci script (the more useful fix, since it closes the actual local-verification gap, not just the doc) or, if that's out of scope for a docs-only PR, by explicitly listing extension:lint/extension:typecheck/miner-extension:lint/miner-extension:typecheck in reference.md's existing "Local-only checks with no separate named CI status" callout so the claim stops being false.
  • Prefer the test:ci fix if in scope: it's a one-line addition to the existing &&-chained script in package.json, no new files, and it's exactly the kind of drift this repo's own docs already warn contributors to watch for.

Deliverables

  • .claude/skills/contributing-to-loopover/reference.md: new CI-table row(s) for the extension lint/typecheck checks
  • Either: package.json's test:ci script extended to run extension:lint && extension:typecheck && miner-extension:lint && miner-extension:typecheck, or reference.md's "local-only checks" callout updated to list them as a known test:ci gap (pick one; the former is preferred)
  • .claude/skills/contributing-to-loopover/SKILL.md checked for the same "run npm run test:ci, you're covered" framing and updated if it repeats the same now-inaccurate claim

Test Coverage Requirements

If package.json's test:ci is extended, that's a script-chain change with no src/** code touched — outside coverage.include, no Codecov gate. If the fix is doc-only (reference.md), it's also outside coverage.include (*.md). Either way, verify by actually running npm run test:ci locally after the change and confirming extension:lint/extension:typecheck execute (their absence today is exactly what's being fixed).

Expected Outcome

The CI table lists every check that gates the required validate status, including the extension lint/typecheck steps; npm run test:ci's "one command for everything except security" claim is either true again or no longer claimed.

Links & Resources

  • .github/workflows/ci.yml (validate-code job, "Extension lint"/"Extension typecheck" steps) — the CI-side source of truth
  • package.json's test:ci script — the local aggregate command
  • .claude/skills/contributing-to-loopover/reference.md section 1 — the table and claim to fix

Metadata

Metadata

Assignees

No one assigned

    Labels

    gittensor:bugGittensor-scored bug fix — scores a 0.05x multiplier.help wantedExtra attention is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions