OpenFastTrace Analysis Tool
A Python tool for analyzing and visualizing OpenFastTrace aspec reports, with a focus on identifying broken chains, dependencies, and version issues.
Learn more about OpenFastTrace at: itsallcode/openfasttrace
Features
- 🔍 Trace Chain Analysis: Visualize and analyze chains of dependent specification items
- 🚨 Failure Detection: Identify broken chains and the reasons for failures
- 🎨 Rich Terminal Output: Beautiful console visualizations with colors and Unicode symbols
- 🧠 Intelligent Analysis: Detects orphaned items, shallow coverage, and outdated versions
Installation
pip install oft-trace
Usage
Command Line Interface
The tool provides several commands:
Overview Analysis
oft-trace trace path/to/report.aspec
Analyzing a Specific Item
oft-trace trace path/to/report.aspec ITEM-123
Finding Broken Chains
oft-trace trace-failures path/to/report.aspec
Listing Items with Filtering
oft-trace list-items path/to/report.aspec --doctype req --coverage UNCOVERED
Common Options
--output/-o: Path to output file (HTML or text)--limit/-l: Limit the number of items to analyze--doctype/-t: Filter by document type--coverage/-c: Filter by coverage status (COVERED,UNCOVERED,ORPHANED,SHALLOW,OUTDATED)--direction/-d: Direction of links to trace (both,incoming,outgoing)
Understanding the Reports
Coverage Types
✅ COVERED - Item is fully covered
🔍 ORPHANED - Item is not covered by any other items
⚠️ SHALLOW - Item has shallow coverage but misses deep coverage
♻️ OUTDATED - Item has version mismatch issues
❌ UNCOVERED - Item is completely uncovered
Example Terminal Output
FAILURE 1/5: req~payment-processing~2 [req]
Title: System must process payments securely
Failure reasons:
- ♻️ Version mismatch: arch-payment-module covers v1 but v2 is expected
- ❌ Missing coverage for types: impl
Trace chain visualization:
└── ❌ req~payment-processing~2 (v2) [req] (/specs/requirements.md:45)
└── ♻️ VERSION MISMATCH: Covering v1 but v2 expected
└── ⚠️ arch-payment-module~1 (v1) [arch] (/specs/architecture.md:67)
Advanced Usage
Programmatic Usage
You can also use the library programmatically in your Python code:
from oft_trace.analyzer import TraceAnalyzer
from oft_trace.parser import parse_aspec_file
# Parse the file
result = parse_aspec_file("path/to/report.aspec")
spec_items, id_map, covering_map, covered_by_map, broken_chains = result
# Create analyzer
analyzer = TraceAnalyzer(spec_items, id_map, covering_map, covered_by_map, broken_chains)
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
This tool was generated with the assistance of AI technology.
Metadata
Release files for oft-trace 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| oft_trace-0.1.0.tar.gz | 15.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| oft_trace-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.1 kB
Release files / oft_trace-0.1.0.tar.gz
| Download URL | oft_trace-0.1.0.tar.gz |
|---|---|
| Size | 15.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
68ca6ddbada34162f91b8230cf1c2d7fad793f0599d83ade4767c54742e22c4d
|
|
BLAKE2b-256 checksum How to use checksums |
1e70a976f052af18d3e2c1b8a7405c6bfd3cea92fd031ee84e7e666bcc83cc80
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 20, 2025.
Transparency logRelease files / oft_trace-0.1.0-py3-none-any.whl
| Download URL | oft_trace-0.1.0-py3-none-any.whl |
|---|---|
| Size | 16.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d33a1b5e51e0db90a7001453698aff7d5e79e321eb6b8d734aa087c8431034f5
|
|
BLAKE2b-256 checksum How to use checksums |
8c0c9c72dc6cd3cfc9e043267a9dc0895111b6e98f0068793c37d6121a30f9c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 20, 2025.
Transparency log