Skip to content

P3 consolidated: Supply chain security, TS/JS coupling adapter, mutation testing reference (Groups 5, 9, 10-TS/JS) #14

Description

@jflowers

Summary

Consolidated issue for all P3/future items: supply chain security tooling, the TS/JS coupling adapter, and a reference note on mutation testing (intentionally not a standalone effort).

RFC: https://github.com/orgs/unbound-force/discussions/483 — Groups 5 (partial), 9, 10 (TS/JS)
Phase: P3 (Multi-language) / Future


A. Supply Chain Security (Group 9)

OSV-Scanner

  • Integrate OSV-Scanner per project for known vulnerability detection
  • Run as part of CI pipeline
  • Fail on critical/high severity vulnerabilities

SBOM Generation

  • Generate Software Bill of Materials using cyclonedx-gomod for Go projects
  • Store SBOMs as build artifacts
  • Consider SBOM generation for other languages as adapters are added

License Compliance

  • Scan dependencies for license compatibility
  • Flag copyleft or unknown licenses
  • Configurable allow/deny list

B. TS/JS Coupling Adapter (Group 10 — TS/JS)

Implementation

  • Build a TS/JS coupling analyzer conforming to vibe-check's ExternalAdapter JSON-RPC 2.0 protocol (as defined in openspec/changes/universal-coupling-model/specs/analyzer-protocol/spec.md)
  • Analyze TypeScript/JavaScript module-level coupling metrics
  • Invoked by vibe-check as an ExternalAdapter subprocess (stdin/stdout JSON-RPC)
  • Output JSON with language: "typescript" or language: "javascript"
  • Handle CommonJS and ES module import styles

Metrics

  • Same 7 metrics as Go and Python adapters (Ca, Ce, I, A, D, LCOM, circular deps)
  • Abstractness adapted for TypeScript interfaces/abstract classes
  • Output must conform to metrics.ModuleGraph schema (validated by metrics.Validate)

C. Mutation Testing Reference (Group 5)

Decision: Mutation testing was evaluated and downgraded to P3/optional. The existing Gaze contract coverage mechanism (37 side-effect types with behavioral assertions) provides substantial overlap with what mutation testing validates. If revisited, consider:

  • go-mutesting or similar
  • Scope to critical packages only (not full codebase)
  • Run on a separate schedule (not per-PR due to performance)

This is a reference note, not a standalone work item.


Acceptance Criteria

Supply Chain

  • OSV-Scanner integrated into CI
  • SBOM generation via cyclonedx-gomod
  • License compliance scanning configured
  • Fail CI on critical vulnerabilities

TS/JS Adapter

  • TS/JS analyzer conforms to vibe-check ExternalAdapter JSON-RPC 2.0 protocol
  • All 7 coupling metrics computed for TS/JS modules
  • JSON output with language field, conforming to metrics.ModuleGraph schema
  • Handles CommonJS and ES module styles
  • Integration with vibe-check analyze tested (registered as ExternalAdapter)

Mutation Testing

  • Reference documented; no implementation required unless revisited

Dependencies

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

    P3Low priority — Phase 4 / future

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions