featuresmith
  • Docs
  • SDK
  • CLI
  • Examples
  • Roadmap
v0.1.0
Documentation

Getting Started

  • Introduction
  • Installation
  • Quick Start
  • Benchmarks
  • Development Setup
  • Contributing

Core Concepts

  • Architecture Overview
  • Dataset Layer
  • Connectors
  • Profiling Engine
  • Rule Engine

Python SDK

  • load()
  • profile()
  • analyze()
  • Data Models
  • Exceptions
  • Plugins

CLI Reference

  • analyze
  • Configuration

Guides

  • CI/CD Integration
  • Custom Rules
  • Writing Plugins

Resources

  • Release Notes
  • FAQ
  • Troubleshooting
DocsGuide

Getting Started

  • Introduction
  • Installation
  • Quick Start
  • Benchmarks
  • Development Setup
  • Contributing

Core Concepts

  • Architecture Overview
  • Dataset Layer
  • Connectors
  • Profiling Engine
  • Rule Engine

Python SDK

  • load()
  • profile()
  • analyze()
  • Data Models
  • Exceptions
  • Plugins

CLI Reference

  • analyze
  • Configuration

Guides

  • CI/CD Integration
  • Custom Rules
  • Writing Plugins

Resources

  • Release Notes
  • FAQ
  • Troubleshooting
HomeDocsContributing Guidelines

Getting Started

Contributing Guidelines

Standards and processes for contributing to Featuresmith

Featuresmith welcomes community contributions! To maintain code stability and high quality, please review our requirements below.

Package Separation Guardrails

To enforce our "one core, many thin surfaces" architecture, we use import-linter. The rule is simple:

Surface wrappers (such as featuresmith-cli and featuresmith-dashboard) MUST NOT import internal core logic. They can only interface with the library via the public API endpoints exposed in featuresmith.api.

Commit Conventions

We follow the Conventional Commits standard, scoped by package:

bash
1feat(rules): add zero variance numerical check
2fix(cli): correct formatting of json output reports
3docs(architecture): expand connectors description
4test(profiling): add test for datetime timezone offset handling

Testing Standards

PRs without comprehensive test coverage will not be merged.

  • Every new rule must have at least one positive fixture test (violations triggered) and one negative test (violations not triggered).
  • New connectors must include unit tests utilizing physical mockup fixtures.
  • Core logic packages require at least 85% statement coverage.

Pull Request Checklist

Before submitting a pull request, ensure that:

  • Strict type hinting is present on all new inputs/outputs (verified with mypy --strict .).
  • Formatting conforms to Ruff (ruff format .).
  • No new external library dependencies are introduced without a corresponding Architecture Decision Record (ADR) under docs/adr/.

Explore

  • Quick Start
  • Python SDK
  • CLI Reference
  • Examples
featuresmith

Open-source data profiling and validation for Python engineers.

Documentation

  • Introduction
  • Quick Start
  • Python SDK
  • CLI Reference

Community

  • GitHub
  • Discussions
  • Issues
  • Contributing

Project

  • Roadmap
  • Release status
  • Benchmarks
  • Changelog
  • Examples

Legal

  • Apache 2.0 License
  • Code of Conduct
  • Security

© 2026 Featuresmith Contributors. Released under the Apache 2.0 License.

Built in the open — contributions welcome.