Metadata-Version: 2.4
Name: tracertm
Version: 0.2.0
Summary: Agent-native, multi-view requirements traceability and project management system
Author-email: BMad <bmad@example.com>
License: MIT
Keywords: ai-agents,project-management,requirements,rtm,traceability
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Office/Business
Classifier: Topic :: Software Development :: Quality Assurance
Requires-Python: >=3.12
Requires-Dist: aiohttp>=3.13.3
Requires-Dist: aiosqlite>=0.22.1
Requires-Dist: alembic>=1.18.3
Requires-Dist: anyio>=4.12.1
Requires-Dist: asyncpg>=0.31.0
Requires-Dist: bcrypt>=5.0.0
Requires-Dist: brotli-asgi>=1.6.0
Requires-Dist: cryptography>=46.0.4
Requires-Dist: fastapi>=0.115.0
Requires-Dist: fastmcp>=3.0.0b1
Requires-Dist: greenlet>=3.3.1
Requires-Dist: grpcio>=1.70.0
Requires-Dist: hatchet-sdk>=1.22.13
Requires-Dist: httpx>=0.28.1
Requires-Dist: keyring>=25.7.0
Requires-Dist: loguru>=0.7.3
Requires-Dist: markdown-it-py>=4.0.0
Requires-Dist: markdown>=3.10.1
Requires-Dist: mcp>=1.26.0
Requires-Dist: minio>=7.2.20
Requires-Dist: msgpack>=1.1.2
Requires-Dist: msgspec>=0.20.0
Requires-Dist: nats-py>=2.12.0
Requires-Dist: neo4j>=6.1.0
Requires-Dist: nkeys>=0.2.1
Requires-Dist: opentelemetry-api>=1.39.1
Requires-Dist: opentelemetry-sdk>=1.39.1
Requires-Dist: prometheus-client>=0.24.1
Requires-Dist: psycopg2-binary>=2.9.11
Requires-Dist: pydantic-settings>=2.12.0
Requires-Dist: pydantic>=2.12.5
Requires-Dist: pyjwt>=2.11.0
Requires-Dist: python-dotenv>=1.2.1
Requires-Dist: python-frontmatter>=1.1.0
Requires-Dist: pyyaml>=6.0.3
Requires-Dist: redis>=5.2.0
Requires-Dist: respx>=0.22.0
Requires-Dist: rich>=14.3.1
Requires-Dist: sqlalchemy[asyncio]>=2.0.46
Requires-Dist: sse-starlette>=3.0.0
Requires-Dist: structlog>=25.5.0
Requires-Dist: temporalio>=1.7.0
Requires-Dist: tenacity>=9.1.2
Requires-Dist: typer>=0.21.1
Requires-Dist: typing-extensions>=4.0.0
Requires-Dist: uvicorn[standard]>=0.32.0
Requires-Dist: watchdog>=6.0.0
Requires-Dist: workos>=5.40.0
Provides-Extra: ai
Requires-Dist: anthropic>=0.77.0; extra == 'ai'
Provides-Extra: all
Requires-Dist: anthropic>=0.77.0; extra == 'all'
Requires-Dist: authlib>=1.6.6; extra == 'all'
Requires-Dist: bcrypt>=5.0.0; extra == 'all'
Requires-Dist: cryptography>=46.0.4; extra == 'all'
Requires-Dist: dask>=2026.1.2; extra == 'all'
Requires-Dist: duckdb>=1.5.0.dev228; extra == 'all'
Requires-Dist: hypothesis>=6.151.4; extra == 'all'
Requires-Dist: ibis-framework>=11.0.1.dev110; extra == 'all'
Requires-Dist: import-linter>=2.4.1; extra == 'all'
Requires-Dist: loguru>=0.7.3; extra == 'all'
Requires-Dist: numpy>=2.4.1; extra == 'all'
Requires-Dist: opentelemetry-api>=1.39.1; extra == 'all'
Requires-Dist: opentelemetry-sdk>=1.39.1; extra == 'all'
Requires-Dist: pandera>=0.29.0; extra == 'all'
Requires-Dist: poethepoet>=0.40.0; extra == 'all'
Requires-Dist: polars>=1.37.1; extra == 'all'
Requires-Dist: pre-commit>=4.5.1; extra == 'all'
Requires-Dist: prometheus-client>=0.24.1; extra == 'all'
Requires-Dist: pycasbin>=2.7.1; extra == 'all'
Requires-Dist: pydantic-factories>=1.17.3; extra == 'all'
Requires-Dist: pyjwt>=2.11.0; extra == 'all'
Requires-Dist: radon>=6.0.1; extra == 'all'
Requires-Dist: ray>=2.53.0; extra == 'all'
Requires-Dist: sentence-transformers>=5.2.2; extra == 'all'
Requires-Dist: structlog>=25.5.0; extra == 'all'
Requires-Dist: tach>=0.33.2; extra == 'all'
Requires-Dist: vulture>=2.14; extra == 'all'
Provides-Extra: data
Requires-Dist: duckdb>=1.5.0.dev228; extra == 'data'
Requires-Dist: ibis-framework>=11.0.1.dev110; extra == 'data'
Requires-Dist: polars>=1.37.1; extra == 'data'
Provides-Extra: dev
Requires-Dist: bandit[toml]>=1.7.10; extra == 'dev'
Requires-Dist: factory-boy>=3.3.3; extra == 'dev'
Requires-Dist: faker>=40.1.2; extra == 'dev'
Requires-Dist: hypothesis>=6.151.4; extra == 'dev'
Requires-Dist: import-linter>=2.4.1; extra == 'dev'
Requires-Dist: loguru>=0.7.3; extra == 'dev'
Requires-Dist: openapi-python-client>=0.22.1; extra == 'dev'
Requires-Dist: pandera>=0.29.0; extra == 'dev'
Requires-Dist: pip-audit>=2.7.4; extra == 'dev'
Requires-Dist: poethepoet>=0.40.0; extra == 'dev'
Requires-Dist: pre-commit>=4.5.1; extra == 'dev'
Requires-Dist: pytest-asyncio>=1.3.0; extra == 'dev'
Requires-Dist: pytest-benchmark>=5.2.3; extra == 'dev'
Requires-Dist: pytest-cov>=7.0.0; extra == 'dev'
Requires-Dist: pytest-mock>=3.15.1; extra == 'dev'
Requires-Dist: pytest-xdist>=3.8.0; extra == 'dev'
Requires-Dist: pytest>=9.0.2; extra == 'dev'
Requires-Dist: radon>=6.0.1; extra == 'dev'
Requires-Dist: ruff>=0.14.14; extra == 'dev'
Requires-Dist: tach>=0.33.2; extra == 'dev'
Requires-Dist: ty>=0.0.2; extra == 'dev'
Requires-Dist: vulture>=2.14; extra == 'dev'
Provides-Extra: distributed
Requires-Dist: dask>=2026.1.2; extra == 'distributed'
Requires-Dist: ray>=2.53.0; extra == 'distributed'
Provides-Extra: lint
Requires-Dist: bandit[toml]>=1.7.10; extra == 'lint'
Requires-Dist: import-linter>=2.4.1; extra == 'lint'
Requires-Dist: pip-audit>=2.7.4; extra == 'lint'
Requires-Dist: ruff>=0.14.14; extra == 'lint'
Requires-Dist: ty>=0.0.2; extra == 'lint'
Provides-Extra: ml
Requires-Dist: numpy>=2.4.1; extra == 'ml'
Requires-Dist: sentence-transformers>=5.2.2; extra == 'ml'
Requires-Dist: torch>=2.10.0; extra == 'ml'
Provides-Extra: observability
Requires-Dist: opentelemetry-api>=1.39.1; extra == 'observability'
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc>=1.39.1; extra == 'observability'
Requires-Dist: opentelemetry-exporter-prometheus>=0.60b1; extra == 'observability'
Requires-Dist: opentelemetry-instrumentation-fastapi>=0.52b0; extra == 'observability'
Requires-Dist: opentelemetry-instrumentation-httpx>=0.52b0; extra == 'observability'
Requires-Dist: opentelemetry-instrumentation-redis>=0.52b0; extra == 'observability'
Requires-Dist: opentelemetry-instrumentation-requests>=0.52b0; extra == 'observability'
Requires-Dist: opentelemetry-instrumentation-sqlalchemy>=0.52b0; extra == 'observability'
Requires-Dist: opentelemetry-sdk>=1.39.1; extra == 'observability'
Requires-Dist: prometheus-client>=0.24.1; extra == 'observability'
Requires-Dist: structlog>=25.5.0; extra == 'observability'
Provides-Extra: phase2
Requires-Dist: loguru>=0.7.3; extra == 'phase2'
Requires-Dist: pandera>=0.29.0; extra == 'phase2'
Requires-Dist: poethepoet>=0.40.0; extra == 'phase2'
Requires-Dist: pre-commit>=4.5.1; extra == 'phase2'
Requires-Dist: tach>=0.33.2; extra == 'phase2'
Provides-Extra: phase3
Requires-Dist: hypothesis>=6.151.4; extra == 'phase3'
Requires-Dist: pydantic-factories>=1.17.3; extra == 'phase3'
Provides-Extra: security
Requires-Dist: authlib>=1.6.6; extra == 'security'
Requires-Dist: bcrypt>=5.0.0; extra == 'security'
Requires-Dist: cryptography>=46.0.4; extra == 'security'
Requires-Dist: pycasbin>=2.7.1; extra == 'security'
Requires-Dist: pyjwt>=2.11.0; extra == 'security'
Provides-Extra: test
Requires-Dist: factory-boy>=3.3.3; extra == 'test'
Requires-Dist: faker>=40.1.2; extra == 'test'
Requires-Dist: hypothesis>=6.151.4; extra == 'test'
Requires-Dist: pytest-asyncio>=1.3.0; extra == 'test'
Requires-Dist: pytest-benchmark>=5.2.3; extra == 'test'
Requires-Dist: pytest-cov>=7.0.0; extra == 'test'
Requires-Dist: pytest-mock>=3.15.1; extra == 'test'
Requires-Dist: pytest-xdist>=3.8.0; extra == 'test'
Requires-Dist: pytest>=9.0.2; extra == 'test'
Provides-Extra: tui
Requires-Dist: textual>=0.47.0; extra == 'tui'
Description-Content-Type: text/markdown

# TracerTM 🚀

[![Go Report Card](https://goreportcard.com/badge/github.com/kooshapari/tracertm)](https://goreportcard.com/report/github.com/kooshapari/tracertm)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)

**Agent-native, multi-view requirements traceability and project management system.**

TracerTM is a comprehensive requirements traceability matrix (RTM) system designed for modern software development workflows. It provides a "Defense in Depth" approach to project governance, linking requirements to code, tests, and deployments across multiple architectural lenses.

---

## 📋 Table of Contents

- [Key Features](#-key-features)
- [Architecture](#-architecture)
- [Getting Started](#-getting-started)
  - [Prerequisites](#prerequisites)
  - [Quick Start](#quick-start)
- [Observability & APM](#-observability--apm)
- [Governance & Hardening](#-governance--hardening)
- [Testing & Quality](#-testing--quality)
- [Documentation](#-documentation)
- [Docs Deploy](#-docs-deploy)
- [Contributing](#-contributing)
- [License](#-license)

---

## ✨ Key Features

- 🔍 **Multi-View Traceability**: View projects through code, API, database, deployment, and documentation lenses.
- 🤖 **Agent-Native Design**: Built-in support for AI-assisted analysis and automated traceability maintenance.
- ⚡ **Real-Time Sync**: WebSocket-based live updates across all management interfaces.
- 📊 **Graph Visualization**: Interactive dependency graphs and impact analysis powered by Neo4j.
- 🛡 **Hardened Governance**: SLSA provenance, signed attestations, and automated quality gates.
- 📈 **Full Observability**: Integrated metrics (Prometheus), logs (Loki), and tracing (Jaeger).

---

## 🏗 Architecture

TracerTM uses a high-performance, polyglot architecture:

- **Backend (Go)**: High-performance API server managing core business logic and integrations.
- **Python Services**: Specialized services for data analysis, CLI/TUI tools, and background processing.
- **Frontend (React/TS)**: Modern SPA with TanStack Router, Zustand, and interactive visualizations.
- **Persistence**: PostgreSQL (Relational), Neo4j (Graph), Redis (Cache), and NATS (Messaging).

---

## 🚀 Getting Started

### Prerequisites
- Go 1.21+, Python 3.11+, Node.js/Bun
- PostgreSQL 17+, Redis 7+, Neo4j 5.0+, NATS 2.9+
- [Task](https://taskfile.dev/) (Task runner) and [Process Compose](https://github.com/F_S_A/process-compose)

### Quick Start (Native Environment)

```bash
# 1. Install all dependencies
task install

# 2. Run database migrations
task db:migrate

# 3. Start all services with interactive TUI dashboard
task dev:tui

# 4. Access the Unified Gateway
# http://localhost:4000 (Frontend, API, and Docs)
```

---

## 📊 Observability & APM

TracerTM includes enterprise-grade monitoring out of the box:
- **Metrics**: http://localhost:3000 (Grafana) / http://localhost:9090 (Prometheus)
- **Tracing**: http://localhost:16686 (Jaeger UI) - Track requests across Go and Python.
- **Logs**: Centralized log aggregation via Loki and Promtail.

---

## 🛡 Governance & Hardening

TracerTM operates at a **critical** quality tier:
1. **Automated Quality Gates**: Ruff, Go build/vet, golangci-lint, TSC, and Tach boundaries.
2. **Provenance**: All builds generate SLSA attestations with digital signatures.
3. **Verification Policy**: Defined dispute workflows for quality gate decisions in `VERIFICATION_POLICY.md`.
4. **Security Scanning**: Automated `govulncheck`, `bandit`, and security audits.

---

## 🧪 Testing & Quality

We maintain a rigorous multi-layer testing strategy:
- **Unit & Integration**: `go test ./...` and `pytest tests/`
- **Frontend**: `bun test` and E2E via Playwright.
- **Complexity Audit**: Automated tracking of code complexity (Radon) and naming conventions.
- **Path Protection**: Architectural boundary enforcement via `tach`.

---

## 📚 Documentation

- **[Docsets](./docs/docsets/)** — Role-specific technical docsets.
  - [Developer (Internal)](./docs/docsets/developer/internal/)
  - [Developer (External)](./docs/docsets/developer/external/)
  - [Technical User](./docs/docsets/user/)
  - [Agent Operator](./docs/docsets/agent/)
- **[First Run Checklist](./docs/checklists/FIRST_RUN_CHECKLIST.md)** — New clone setup.
- **[Changelog Process](./docs/guides/CHANGELOG_PROCESS.md)** — How entries are added and released.
- **[Changelog Entry Template](./docs/reference/CHANGELOG_ENTRY_TEMPLATE.md)** — Copy/paste snippet for new entries.
- **[Project Setup Style](./docs/guides/PROJECT_SETUP_STYLE.md)** — Standardized repo command/process baseline.
- **[API Documentation](http://localhost:4000/docs)** — Interactive API explorer.
- **[Architecture Overview](./docs/reference/ARCHITECTURE_LAYERS.md)** — Deep dive into internals.
- **[Verification Policy](VERIFICATION_POLICY.md)** — Quality standards and dispute workflows.

### Documentation Hub

For a unified view of all Kush ecosystem projects, visit the [Docs Hub](../docs-hub/index.md).

---

## 🚢 Docs Deploy

Local VitePress docs site:

```bash
cd docs
npm install
npm run docs:dev
npm run docs:build
```

GitHub Pages:

- Workflow: `.github/workflows/vitepress-pages.yml`
- URL convention: `https://<owner>.github.io/trace/`

---

## 🤝 Contributing

We welcome community contributions! Please see **[CONTRIBUTING.md](CONTRIBUTING.md)** (coming soon) for details on our development workflow and quality requirements.

---

## 📜 License

Distributed under the MIT License. See [LICENSE](LICENSE) for more information.

---

<p align="center">
  Built with ❤️ by the community
</p>
