Skip to content

ntv has no build, test, or lint CI — only pnpm audit gates a PR #18

Description

@acamarata

Gap

nself-org/ntv has no build, test, lint, or typecheck CI. The repo has three workflows total:

Workflow What it gates
Dependency Audit pnpm audit
Dependabot Auto-Merge (patch security updates) merge automation
Dependabot Updates dependency PRs

The only check that runs on a PR is pnpm audit. Nothing compiles the app, runs a test, or lints. A PR that breaks the build merges green.

Why this is worth fixing rather than accepting

ɳTV is not a scratch repo. Measured today:

  • app released at v1.2.1, last commit 2026-08-15
  • 13 paid plugins carry "bundle": "ntv" in plugins-pro/registry.json, each with a download_url, checksum, and requires_license
  • that makes it the second largest bundle of six (nsentry 14, ntv 13, nclaw 13, nfamily 10, nchat 4, clawde 3)
  • nself.org/tv is live and sells it: "It unlocks the pro plugins"
  • it is inside the ɳSelf+ "all 6 bundles" tier at $3.99/mo

So this is a paid, shipping surface with no correctness gate.

Related but separate

tv.nself.org returns HTTP 000 — the hosted SaaS surface does not exist. Under the Three-Surface Model that subdomain is ntv/web/. That is a product-scope question, not a CI one, and it is easy to conflate the two: the ɳTV SaaS is absent while the TV Bundle is selling. This issue is only about the missing CI on the shipping bundle.

Suggested minimum

Match what the sibling app repos already run, rather than inventing something new:

  1. Lint + typecheck + test on PR and push to main — nsentry runs Lint + Typecheck + Test (client + mobile), nfamily runs Lint and test (RN/Expo).
  2. gitleaks — every other app repo has it; ntv does not.
  3. clean-root / forbid-disallowed-files, consistent with the org Clean Root rule.
  4. Once those exist, make one of them a required status check on main.

Note on branch protection

main previously required a status check named nself-ci, which no workflow in this repo produces, so every PR would have been permanently unmergeable. That was corrected during a gate sweep on 2026-08-26; main now requires pnpm audit, which is simply the only real check that exists. It should be replaced with a genuine build/test gate once one is added — requiring an audit-only check is a weak gate, not a real one.

Found during a deliberate sweep for gates whose success condition is unreachable or trivially satisfiable.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions