| Crates.io | tessera-design-toolkit |
| lib.rs | tessera-design-toolkit |
| version | 0.6.0 |
| created_at | 2025-12-15 00:25:16.037063+00 |
| updated_at | 2026-01-21 01:43:58.945384+00 |
| description | Tessera Design Toolkit (TDT) - CLI for managing engineering artifacts with requirements, risks, BOMs, tolerance analysis, and full traceability |
| homepage | |
| repository | https://github.com/jackhale98/tdt |
| max_upload_size | |
| id | 1985331 |
| size | 1,973,452 |
Plain-text engineering artifact management with full traceability
A CLI and desktop application for managing requirements, risks, tests, BOMs, tolerance analysis, manufacturing, and quality data as human-readable YAML files under git version control.
π Website: tessera-engineering.com

REQ@1, RISK@2, etc. instead of typing long IDsThe command-line tool is called tdt (Tessera Design Toolkit).
Download the latest release for your platform from GitHub Releases:
# Linux (x64)
curl -sSL https://github.com/jackhale98/tdt/releases/latest/download/tdt-linux-x64.tar.gz | tar xz
sudo mv tdt /usr/local/bin/
# macOS (Apple Silicon)
curl -sSL https://github.com/jackhale98/tdt/releases/latest/download/tdt-macos-arm64.tar.gz | tar xz
sudo mv tdt /usr/local/bin/
# macOS (Intel)
curl -sSL https://github.com/jackhale98/tdt/releases/latest/download/tdt-macos-x64.tar.gz | tar xz
sudo mv tdt /usr/local/bin/
# Windows - download tdt-windows-x64.zip and extract to your PATH
cargo install tessera-design-toolkit
This installs the tdt binary. Note: compilation takes a few minutes due to dependencies.
git clone https://github.com/jackhale98/tdt.git
cd tdt
cargo build --release
# Binary will be at target/release/tdt
Tessera Desktop provides a full-featured graphical interface for managing your engineering artifacts. The desktop app is currently in beta.
Download the latest desktop release for your platform from GitHub Releases:
| Platform | Download |
|---|---|
| Windows (x64) | tessera-desktop-windows-x64.msi or .exe |
| macOS (Apple Silicon) | tessera-desktop-macos-arm64.dmg |
| macOS (Intel) | tessera-desktop-macos-x64.dmg |
| Linux (x64) | tessera-desktop-linux-x64.AppImage or .deb |
Features:
Note: The desktop app works with the same project structure as the CLI. You can use both interchangeably.
# Initialize a new project
tdt init
# Create a requirement
tdt req new --title "Operating Temperature Range" --type input
# List all requirements (shows REQ@N short IDs)
tdt req list
# Show a specific requirement using short ID
tdt req show REQ@1 # Use prefixed short ID from list
tdt req show REQ-01HC2 # Or partial ID match
# Create a risk
tdt risk new --title "Battery Overheating" -t design
# Validate all project files
tdt validate
After running list commands, Tessera assigns entity-prefixed short IDs (REQ@1, RISK@1, etc.) to entities:
$ tdt req list
@ ID TYPE TITLE STATUS PRIORITY
--------------------------------------------------------------------------------------------
REQ@1 REQ-01HC2JB7... input Operating Temperature Range approved high
REQ@2 REQ-01HC2JB8... output Thermal Management Specification draft high
$ tdt risk list
@ ID TYPE TITLE STATUS LEVEL RPN
----------------------------------------------------------------------------------------------
RISK@1 RISK-01HC2JB7... design Battery Overheating review medium 108
# Use prefixed short IDs instead of full IDs
tdt req show REQ@1
tdt risk show RISK@1
tdt link add REQ@1 TEST@1
tdt trace from REQ@1
Short IDs are persistent per entity type - the same entity keeps its short ID across list commands.
This enables cross-entity linking (e.g., linking REQ@1 to TEST@1).
Common multi-step tasks made easy:
tdt test list # Find test to execute
tdt test run TEST@1 --verdict pass # Record pass result (creates RSLT)
tdt rslt summary # Check overall test status
tdt ncr list --ncr-status open # Find open NCRs
tdt ncr show NCR@1 # Review details
tdt ncr close NCR@1 -d rework --rationale "Re-machined to spec"
tdt capa list --capa-status implementation # Find CAPAs ready for verification
tdt capa verify CAPA@1 --result effective --method "30-day audit"
tdt cmp matrix # View design structure matrix
tdt tol analyze TOL@1 # Run tolerance stackup analysis
tdt risk matrix # Visual severity Γ occurrence grid
tdt risk list --by-rpn --top 5 # Top 5 risks by RPN
tdt proc flow --controls # Process flow with control points
tdt ctrl list --critical # Review CTQ controls
After tdt init, your project will have:
.tdt/
βββ config.yaml # Project configuration
βββ cache.db # SQLite cache (auto-generated)
βββ archive/ # Archived entities (from `tdt <entity> archive`)
requirements/
βββ inputs/ # Design inputs (customer requirements)
βββ outputs/ # Design outputs (specifications)
risks/
βββ design/ # Design risks
βββ process/ # Process risks
bom/
βββ assemblies/ # Assembly definitions
βββ components/ # Component definitions
βββ quotes/ # Supplier quotes
tolerances/
βββ features/ # Feature tolerances
βββ mates/ # Mating features
βββ stackups/ # Tolerance stackups
verification/
βββ protocols/ # Verification test protocols
βββ results/ # Test results
validation/
βββ protocols/ # Validation protocols
βββ results/ # Validation results
manufacturing/
βββ processes/ # Manufacturing process definitions
βββ controls/ # Control plan items (SPC, inspection)
βββ work_instructions/ # Operator procedures
βββ ncrs/ # Non-conformance reports
βββ capas/ # Corrective/preventive actions
| Prefix | Entity | Description |
|---|---|---|
| REQ | Requirement | Design inputs and outputs |
| RISK | Risk | Risk / FMEA item |
| TEST | Test | Verification or validation protocol |
| RSLT | Result | Test result / execution record |
| TOL | Tolerance | Tolerance stackup |
| MATE | Mate | Feature mate (for stackups) |
| ASM | Assembly | Assembly definition |
| CMP | Component | Component definition |
| FEAT | Feature | Feature (on a component) |
| PROC | Process | Manufacturing process definition |
| CTRL | Control | Control plan item (SPC, inspection) |
| WORK | Work Instruction | Operator procedures |
| NCR | Non-Conformance | Non-conformance report |
| CAPA | CAPA | Corrective/preventive action |
| QUOT | Quote | Quote / cost record |
| SUP | Supplier | Approved supplier |
Use -o/--output to control output format:
tdt req list -f json # JSON output (for scripting)
tdt req list -f yaml # YAML output
tdt req list -f csv # CSV output (for spreadsheets)
tdt req list -f tsv # Tab-separated (default for lists)
tdt req list -f md # Markdown table
tdt req list -f id # Just IDs, one per line
tdt req show REQ-01 -f json # Full entity as JSON
tdt req show REQ-01 -f yaml # Full entity as YAML
tdt init # Initialize a new project
tdt init --git # Initialize with git repository
tdt validate # Validate all project files
tdt validate --keep-going # Continue after errors
tdt validate --summary # Show summary only
tdt validate --fix # Auto-fix calculated values (RPN, risk level)
tdt validate --strict # Treat warnings as errors
tdt config show # Show effective (merged) configuration
tdt config show author # Show specific key's value
tdt config show --project-only # Show only project-level config
tdt config show --global-only # Show only user-level config
tdt config set author "Jane Doe" # Set in project config
tdt config set author "Jane Doe" -g # Set in global (user) config
tdt config unset author # Remove from project config
tdt config unset author -g # Remove from global config
tdt config path # Show config file paths
tdt config keys # List all available config keys
Configuration is layered (highest priority first):
TDT_AUTHOR, TDT_EDITOR).tdt/config.yaml)~/.config/tdt/config.yaml)tdt search "temperature" # Search all entities
tdt search "motor" --type req,risk # Search specific entity types
tdt search "draft" --status draft # Filter by status
tdt search "keyword" --author "Jane" # Filter by author
tdt search "v2" --tag "release" # Filter by tag
tdt search "term" --count # Show count only
tdt search "term" -f json # Output as JSON
tdt recent # Show 20 most recently modified entities
tdt recent -n 50 # Show 50 most recent
tdt recent -t req,risk # Filter by entity type
tdt recent -f short-id # Output short IDs (for piping)
tdt recent --count # Show count only
tdt tags list # List all tags with usage counts
tdt tags list -n 10 # Show top 10 tags
tdt tags list -f json # Output as JSON
tdt tags show precision # Show entities with tag "precision"
tdt tags show thermal -f id # Output full IDs (for piping)
tdt tags show urgent --count # Count entities with tag
tdt req new # Create with template
tdt req new --title "Title" -t input # Create with options
tdt req new -i # Interactive wizard (schema-driven)
tdt req list # List all
tdt req list --status draft # Filter by status
tdt req list --priority high # Filter by priority
tdt req list --type input # Filter by type
tdt req list --search "temperature" # Search in title/text
tdt req list --orphans # Show unlinked requirements
tdt req show REQ-01HC2 # Show details (partial ID match)
tdt req edit REQ-01HC2 # Open in editor
tdt req delete REQ@1 # Permanently delete (checks for links)
tdt req delete REQ@1 --force # Delete even if referenced
tdt req archive REQ@1 # Move to .tdt/archive/ instead of deleting
tdt risk new # Create with template
tdt risk new --title "Overheating" # Create with title
tdt risk new -t process # Create process risk
tdt risk new --severity 8 --occurrence 5 --detection 3 # Set FMEA ratings
tdt risk new -i # Interactive wizard
tdt risk list # List all risks
tdt risk list --level high # Filter by risk level
tdt risk list --by-rpn # Sort by RPN (highest first)
tdt risk list --min-rpn 100 # Filter by minimum RPN
tdt risk list --unmitigated # Show risks without mitigations
tdt risk show RISK-01HC2 # Show details
tdt risk edit RISK-01HC2 # Open in editor
tdt risk delete RISK@1 # Permanently delete
tdt risk archive RISK@1 # Move to archive
tdt risk matrix # Severity Γ Occurrence risk matrix
tdt risk matrix --show-ids # Show risk IDs in cells
tdt test new # Create with template
tdt test new --title "Temperature Test" # Create with title
tdt test new -t verification -l system # Create verification test at system level
tdt test new -m analysis # Create with analysis method (IADT)
tdt test new -i # Interactive wizard
tdt test list # List all tests
tdt test list --type verification # Filter by test type
tdt test list --level unit # Filter by test level
tdt test list --method inspection # Filter by IADT method
tdt test list --orphans # Show tests without linked requirements
tdt test show TEST-01HC2 # Show details
tdt test edit TEST-01HC2 # Open in editor
tdt test delete TEST@1 # Permanently delete
tdt test archive TEST@1 # Move to archive
tdt test run TEST@1 --verdict pass # Execute test and record result
tdt test run TEST@1 --verdict fail --notes "See NCR@1" # Record failure with notes
tdt rslt new --test TEST-01HC2 # Create result for a test
tdt rslt new --test @1 --verdict pass # Use short ID, set verdict
tdt rslt new -i # Interactive wizard
tdt rslt list # List all results
tdt rslt list --verdict fail # Filter by verdict
tdt rslt list --verdict issues # Show fail/conditional/incomplete
tdt rslt list --test TEST-01HC2 # Show results for a specific test
tdt rslt list --with-failures # Show only results with failures
tdt rslt list --recent 7 # Show results from last 7 days
tdt rslt show RSLT-01HC2 # Show details
tdt rslt edit RSLT-01HC2 # Open in editor
tdt rslt delete RSLT@1 # Permanently delete
tdt rslt archive RSLT@1 # Move to archive
tdt rslt summary # Test execution statistics dashboard
tdt rslt summary --detailed # Breakdown by test type
tdt cmp new # Create with template
tdt cmp new --title "Motor Assembly" --part-number "PN-001"
tdt cmp new --make-buy buy --category mechanical
tdt cmp list # List all components
tdt cmp list --make-buy buy # Filter by make/buy
tdt cmp list --category electrical # Filter by category
tdt cmp list --assembly ASM@1 # Components in assembly's BOM
tdt cmp show CMP@1 # Show details
tdt cmp edit CMP@1 # Open in editor
tdt cmp delete CMP@1 # Permanently delete
tdt cmp archive CMP@1 # Move to archive
tdt cmp matrix # Design structure matrix (component interactions)
tdt cmp matrix --show-ids # Show component IDs in cells
tdt asm new # Create with template
tdt asm new --title "Main Assembly" --part-number "ASM-001"
tdt asm list # List all assemblies
tdt asm list --assembly ASM@1 # Sub-assemblies within ASM@1
tdt asm show ASM@1 # Show details
tdt asm bom ASM@1 # Show flattened BOM
tdt asm cost ASM@1 # Calculate recursive BOM cost
tdt asm mass ASM@1 # Calculate recursive BOM mass
tdt asm edit ASM@1 # Open in editor
tdt asm delete ASM@1 # Permanently delete
tdt asm archive ASM@1 # Move to archive
tdt sup new --name "Acme Manufacturing Corp" # Create supplier
tdt sup new -n "Acme Corp" --short-name "Acme" --website "https://acme.com"
tdt sup new -i # Interactive mode
tdt sup list # List all suppliers
tdt sup list -c machining # Filter by capability
tdt sup list --search "acme" # Search in name
tdt sup show SUP@1 # Show details
tdt sup edit SUP@1 # Open in editor
tdt sup delete SUP@1 # Permanently delete
tdt sup archive SUP@1 # Move to archive
tdt quote new --component CMP@1 --supplier SUP@1 # Quote for component
tdt quote new --assembly ASM@1 --supplier SUP@1 # Quote for assembly
tdt quote new -c CMP@1 -s SUP@1 --price 12.50 --lead-time 14
tdt quote new -i # Interactive mode
tdt quote list # List all quotes
tdt quote list -Q pending # Filter by quote status
tdt quote list --component CMP@1 # Filter by component
tdt quote list --supplier SUP@1 # Filter by supplier
tdt quote show QUOT@1 # Show details
tdt quote compare CMP@1 # Compare quotes for item
tdt quote edit QUOT@1 # Open in editor
tdt quote delete QUOT@1 # Permanently delete
tdt quote archive QUOT@1 # Move to archive
tdt feat new --component CMP@1 --type hole --title "Mounting Hole"
tdt feat new --component CMP@1 --type shaft # Feature requires parent component
tdt feat list # List all features
tdt feat list --component CMP@1 # Filter by component
tdt feat list --type hole # Filter by type
tdt feat show FEAT@1 # Show details
tdt feat edit FEAT@1 # Open in editor
tdt feat delete FEAT@1 # Permanently delete
tdt feat archive FEAT@1 # Move to archive
tdt mate new --feature-a FEAT@1 --feature-b FEAT@2 --title "Pin-Hole Fit"
tdt mate list # List all mates
tdt mate list --type clearance # Filter by mate type
tdt mate show MATE@1 # Show details with fit calculation
tdt mate recalc MATE@1 # Recalculate fit from features
tdt mate edit MATE@1 # Open in editor
tdt mate delete MATE@1 # Permanently delete
tdt mate archive MATE@1 # Move to archive
tdt tol new --title "Gap Analysis" --target-nominal 1.0 --target-upper 1.5 --target-lower 0.5
tdt tol list # List all stackups
tdt tol list --result pass # Filter by worst-case result
tdt tol list --critical # Show only critical stackups
tdt tol show TOL@1 # Show details with analysis
tdt tol analyze TOL@1 # Run worst-case, RSS, Monte Carlo
tdt tol analyze TOL@1 --iterations 50000 # Custom Monte Carlo iterations
tdt tol analyze TOL@1 --3d # 3D SDT torsor-based analysis
tdt tol analyze TOL@1 --3d --visualize # 3D with braille visualization
tdt tol edit TOL@1 # Open in editor
tdt tol delete TOL@1 # Permanently delete
tdt tol archive TOL@1 # Move to archive
tdt proc new --title "CNC Milling" --type machining
tdt proc new --title "Final Assembly" --type assembly --op-number "OP-020"
tdt proc list # List all processes
tdt proc list --type machining # Filter by process type
tdt proc list --status approved # Filter by status
tdt proc show PROC@1 # Show details
tdt proc edit PROC@1 # Open in editor
tdt proc delete PROC@1 # Permanently delete
tdt proc archive PROC@1 # Move to archive
tdt proc flow # Visualize process flow with controls
tdt proc flow --controls # Show linked control points
tdt proc flow --work-instructions # Show linked work instructions
Process types: machining, assembly, inspection, test, finishing, packaging, handling, heat_treat, welding, coating
tdt ctrl new --title "Bore Diameter SPC" --type spc --process PROC@1
tdt ctrl new --title "Visual Check" --type visual --critical
tdt ctrl list # List all controls
tdt ctrl list --type spc # Filter by control type
tdt ctrl list --process PROC@1 # Filter by process
tdt ctrl list --critical # Show only CTQ controls
tdt ctrl show CTRL@1 # Show details
tdt ctrl edit CTRL@1 # Open in editor
tdt ctrl delete CTRL@1 # Permanently delete
tdt ctrl archive CTRL@1 # Move to archive
Control types: spc, inspection, poka_yoke, visual, functional_test, attribute
tdt work new --title "CNC Mill Setup" --process PROC@1 --doc-number "WI-MACH-001"
tdt work list # List all work instructions
tdt work list --process PROC@1 # Filter by process
tdt work list --search "setup" # Search in title
tdt work show WORK@1 # Show details
tdt work edit WORK@1 # Open in editor
tdt work delete WORK@1 # Permanently delete
tdt work archive WORK@1 # Move to archive
tdt ncr new --title "Bore Diameter Out of Tolerance" --type internal --severity major
tdt ncr new --title "Supplier Material Issue" --type supplier --severity critical --category material
tdt ncr list # List all NCRs
tdt ncr list --type internal # Filter by NCR type
tdt ncr list --severity critical # Filter by severity
tdt ncr list --ncr-status open # Filter by workflow status
tdt ncr show NCR@1 # Show details
tdt ncr edit NCR@1 # Open in editor
tdt ncr delete NCR@1 # Permanently delete
tdt ncr archive NCR@1 # Move to archive
tdt ncr close NCR@1 --disposition rework # Close with disposition
tdt ncr close NCR@1 -d use-as-is --rationale "Within tolerance"
NCR types: internal, supplier, customer
Severity levels: minor, major, critical
Categories: dimensional, cosmetic, material, functional, documentation, process, packaging
tdt capa new --title "Tool Wear Detection" --type corrective --ncr NCR@1
tdt capa new --title "Process Improvement" --type preventive --source trend_analysis
tdt capa list # List all CAPAs
tdt capa list --type corrective # Filter by CAPA type
tdt capa list --capa-status implementation # Filter by workflow status
tdt capa list --overdue # Show overdue CAPAs
tdt capa show CAPA@1 # Show details
tdt capa edit CAPA@1 # Open in editor
tdt capa delete CAPA@1 # Permanently delete
tdt capa archive CAPA@1 # Move to archive
tdt capa verify CAPA@1 --result effective # Record effectiveness verification
tdt capa verify CAPA@1 -r partial --method "Process audit"
CAPA types: corrective, preventive
Source types: ncr, audit, customer_complaint, trend_analysis, risk
tdt link add REQ@1 REQ@2 -t satisfied_by # Add link
tdt link remove REQ@1 REQ@2 -t satisfied_by # Remove link
tdt link show REQ@1 # Show all links
tdt link check # Check for broken links
tdt trace matrix # Show traceability matrix
tdt trace matrix -o csv # Export as CSV
tdt trace matrix -o dot # Export as GraphViz DOT
tdt trace from REQ@1 # What depends on this?
tdt trace to REQ@1 # What does this depend on?
tdt trace orphans # Find unlinked entities
tdt trace coverage # Verification coverage report
tdt trace coverage --uncovered # Show uncovered requirements
tdt where-used CMP@1 # Find where a component is used
tdt where-used FEAT@3 # Find stackups/mates using a feature
tdt where-used REQ@5 # Find what references a requirement
tdt where-used CMP@1 --direct-only # Show only direct references
tdt report rvm # Requirements Verification Matrix
tdt report rvm -o report.csv # Export RVM to CSV
tdt report fmea # FMEA report sorted by RPN
tdt report fmea --top 10 # Show top 10 risks by RPN
tdt report bom ASM@1 # Indented BOM with costs/masses
tdt report test-status # Test execution summary
tdt report open-issues # All open NCRs, CAPAs, failed tests
tdt risk summary # Risk statistics overview
tdt risk summary --top 5 # Show top N risks by RPN
tdt risk summary -f json # Output as JSON (for CI/CD)
tdt status # Full project status dashboard
tdt status --section requirements # Show only requirements metrics
tdt status --section risks # Show only risk metrics
tdt status --detailed # Show detailed breakdown
tdt status -f json # Output as JSON (for CI/CD)
# History - view git history for an entity
tdt history REQ@1 # Show commit history
tdt history REQ@1 -n 10 # Last 10 commits
tdt history REQ@1 --since 2024-01-01 # Since date
tdt history REQ@1 --full # Show full commit messages
# Blame - view git blame for an entity
tdt blame REQ@1 # Show who changed each line
tdt blame REQ@1 --line 15 # Blame specific line range
# Diff - view git diff for an entity
tdt diff REQ@1 # Show working changes
tdt diff REQ@1 HEAD~1 # Diff vs previous commit
tdt diff REQ@1 v1.0..v2.0 # Diff between tags
tdt baseline create v1.0 # Validate, then create git tag
tdt baseline create v1.0 -m "Release 1.0" # With message
tdt baseline list # List all Tessera baselines
tdt baseline compare v1.0 v2.0 # Show what changed between versions
tdt baseline changed --since v1.0 # List entities changed since baseline
# Set status on multiple entities
tdt bulk set-status approved REQ@1 REQ@2 REQ@3
tdt bulk set-status review -t req --dry-run
# Add/remove tags
tdt bulk add-tag "v2.0" CMP@1 CMP@2 CMP@3
tdt bulk remove-tag "deprecated" -t cmp --all
# Set author
tdt bulk set-author "Jane Doe" REQ@1 REQ@2
# Dry run (preview changes without modifying)
tdt bulk set-status approved -t req --dry-run
Bulk commands read entity IDs from stdin, enabling Unix-style pipelines:
# Pipe from list commands
tdt req list --output id | tdt bulk set-status approved
tdt req list --unverified --output id | tdt bulk add-tag needs-review
tdt risk list --level high --output id | tdt bulk add-tag urgent
# Combine with standard Unix tools
tdt req list --output id | grep "input" | tdt bulk set-status review
tdt cmp list --output id | head -5 | tdt bulk add-tag "prototype"
# Chain multiple operations
tdt req list --status draft --output id | tdt bulk set-status review
This works with all entity types and all bulk commands (set-status, add-tag, remove-tag, set-author).
Tessera is more than requirements tracking. Here are some powerful workflows:
Define features on components, create mates, and run worst-case, RSS, and Monte Carlo analysis:
# Create a component
$ tdt cmp new -p "PN-001" -t "Housing"
β Created component CMP@1
Part: PN-001 | Housing
# Add features with tolerances
$ tdt feat new -c CMP@1 -t hole --title "Bore"
β Created feature FEAT@1
Parent: CMP-01KC5W... | Type: hole | Bore
# Create a mate to analyze fit
$ tdt mate new -a FEAT@1 -b FEAT@2 --title "Pin-Hole Fit"
β Created mate MATE@1
Fit Analysis:
Result: transition (-0.1500 to 0.1500)
# Create a tolerance stackup
$ tdt tol new -t "Gap Analysis" --target-nominal 1.0 --target-upper 1.5 --target-lower 0.5
β Created stackup TOL@1
Target: Target = 1.000 (LSL: 0.500, USL: 1.500)
# Run Monte Carlo analysis
$ tdt tol analyze TOL@1 --iterations 10000
β Analyzing stackup TOL@1...
β Analysis complete
Worst-Case Analysis:
Range: 0.8700 to 1.1800
Result: pass
RSS (Statistical) Analysis:
Mean: 1.0000 | Β±3Ο: 0.0750
Cpk: 4.56 | Yield: 99.99%
Monte Carlo (10000 iterations):
Mean: 1.0001 | Std Dev: 0.0249
Yield: 100.00%
Track design and process risks with full FMEA methodology:
# Create a risk with FMEA ratings
$ tdt risk new --title "Motor Overheating" -t design \
--severity 8 --occurrence 4 --detection 5
β Created risk RISK@1
RPN: 160 (high)
# View risks sorted by RPN
$ tdt risk list --by-rpn
SHORT ID TYPE TITLE STATUS LEVEL RPN
--------------------------------------------------------------------------------
RISK@1 RISK-01KC5W... design Motor Overheating draft high 160
RISK@2 RISK-01KC5W... process Seal Degradation draft medium 72
2 risk(s) found. Use RISK@N to reference by short ID.
Define processes, controls, and track quality issues through to resolution:
# Define a manufacturing process
$ tdt proc new -t "CNC Milling" -T machining -n "OP-010"
β Created process PROC@1
Type: machining | CNC Milling
# Add an SPC control point
$ tdt ctrl new -t "Bore Diameter SPC" -T spc -p PROC@1 --critical
β Created control CTRL@1
Type: spc | Bore Diameter SPC [CTQ]
# Create work instructions
$ tdt work new -t "Mill Setup" -p PROC@1 -d "WI-MACH-001"
β Created work instruction WORK@1
Mill Setup
Doc: WI-MACH-001
# Log a non-conformance
$ tdt ncr new -t "Bore Out of Tolerance" -S major -T internal
β Created NCR NCR@1
internal | major | Bore Out of Tolerance
# Create corrective action linked to NCR
$ tdt capa new -t "Tool Wear Detection" -T corrective --ncr NCR@1
β Created CAPA CAPA@1
corrective | Tool Wear Detection
Source: NCR-01KC5W...
Link requirements to tests, risks to mitigations, and generate coverage reports:
# Link a requirement to a test
$ tdt link add REQ@1 TEST@1 -t verified_by
β Added link: REQ-01KC5W... --[verified_by]--> TEST-01KC5W...
# Check verification coverage
$ tdt trace coverage
Verification Coverage Report
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Total requirements: 24
With verification: 22
Without verification: 2
Coverage: 92%
# Find orphaned entities
$ tdt trace orphans
Orphaned Entities
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β RISK-01KC5W... - Motor Overheating (no links)
β NCR-01KC5W... - Bore Out of Tolerance (no links)
Found 2 orphaned entity(ies)
Track suppliers, quotes, and compare pricing:
# Create a supplier
$ tdt sup new -n "Acme Manufacturing" --short-name "Acme"
β Created supplier SUP@1
Name: Acme Manufacturing
# Add a quote for a component
$ tdt quote new -c CMP@1 -s SUP@1 --price 12.50 --lead-time 14
β Created quote QUOT@1
Supplier: SUP-01KC5W... | Component: CMP-01KC5W...
Price: 12.50 | Lead: 14d
# Compare quotes for a component
$ tdt quote compare CMP@1
Comparing 3 quotes for CMP@1
SHORT SUPPLIER PRICE MOQ LEAD STATUS
------------------------------------------------------
QUOT@1 SUP@1 12.50 100 14d pending
QUOT@2 SUP@2 13.75 50 21d pending
QUOT@3 SUP@3 10.00 500 45d pending
β
Lowest price: 10.00 from SUP@3
Note: For complete YAML schema documentation and field references, see the individual entity docs in the docs/ directory.
Tessera supports the complete manufacturing quality loop:
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β PROC ββββββΆβ CTRL ββββββΆβ WORK β
β (Process) β β (Control) β β (Work Inst) β
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β β β
β βΌ β
β ββββββββββββββββ β
β β NCR ββββββββββββββ
β β (Non-Conf) β
β ββββββββββββββββ
β β
β βΌ
β ββββββββββββββββ
ββββββββββββββΆβ CAPA β
β (Corrective)β
ββββββββββββββββ
Tessera uses plus_tol and minus_tol fields instead of the Β± symbol (which is hard to type):
# Correct: 10.0 +0.1/-0.05
dimensions:
- name: "diameter"
nominal: 10.0
plus_tol: 0.1 # Positive deviation allowed
minus_tol: 0.05 # Negative deviation allowed (stored as positive number)
Both values are stored as positive numbers. The actual tolerance range is:
nominal + plus_tol = 10.1nominal - minus_tol = 9.95Tessera validates files against JSON Schema with detailed error messages:
error[tessera::schema::validation]: Schema validation failed
--> requirements/inputs/REQ-01HC2.tdt.yaml:8:1
|
8 | status: pending
| ^^^^^^^^^^^^^^^ Invalid enum value
|
help: Valid values: draft, review, approved, released, obsolete
draft β review β approved β released
β β
obsolete β β β β
| Status | Description |
|---|---|
| draft | Initial creation, still being written |
| review | Ready for stakeholder review |
| approved | Signed off and baselined |
| released | Released to production/manufacturing |
| obsolete | No longer applicable |
| Priority | Use For |
|---|---|
| critical | Safety, regulatory, blocking requirements |
| high | Core functionality, key differentiators |
| medium | Standard features, quality of life |
| low | Nice to have, future considerations |
Tessera uses FMEA (Failure Mode and Effects Analysis) methodology:
| Factor | 1 | 10 |
|---|---|---|
| Severity | Minimal impact | Catastrophic, safety hazard |
| Occurrence | Very unlikely | Almost certain |
| Detection | Always detected | Cannot be detected |
RPN = Severity x Occurrence x Detection (range: 1-1000)
| RPN Range | Risk Level | Action |
|---|---|---|
| 1-50 | Low | Monitor, no immediate action needed |
| 51-150 | Medium | Plan mitigations, track progress |
| 151-400 | High | Prioritize mitigations, escalate |
| 401+ | Critical | Immediate action required |
| Type | Purpose |
|---|---|
| prevention | Reduces occurrence probability |
| detection | Improves ability to detect before failure |
| Type | Purpose | Question |
|---|---|---|
| Verification | Did we build it right? | Confirms design outputs meet inputs |
| Validation | Did we build the right thing? | Confirms product meets user needs |
| Level | Tests Against | Scope |
|---|---|---|
| Unit | Detailed design | Individual components |
| Integration | Architecture design | Component interactions |
| System | System requirements | Complete system |
| Acceptance | User needs | End-user scenarios |
Tests can use different verification methods (Inspection, Analysis, Demonstration, Test):
| Method | Description | When to Use |
|---|---|---|
| Inspection | Visual examination | Workmanship, labeling, documentation |
| Analysis | Calculation/simulation | Complex systems, safety-critical |
| Demonstration | Show functionality | User interface, simple operations |
| Test | Measured execution | Performance, environmental, stress |
Tessera supports four analysis methods for tolerance stackups:
Assumes all dimensions are at their worst-case limits simultaneously:
Statistical analysis assuming normal distributions:
| Cpk | Yield | Quality Level |
|---|---|---|
| 0.33 | 68.27% | Poor |
| 0.67 | 95.45% | Marginal |
| 1.0 | 99.73% | Capable |
| 1.33 | 99.99% | Good |
| 1.67 | 99.9997% | Excellent |
| 2.0 | 99.9999% | Six Sigma |
Runs thousands of random samples:
Full 3D tolerance analysis using torsor theory:
# Run 1D analysis with default iterations
tdt tol analyze TOL@1
# Run with more iterations for higher confidence
tdt tol analyze TOL@1 --iterations 100000
# Run 3D SDT analysis (requires features with geometry_3d)
tdt tol analyze TOL@1 --3d
# 3D analysis with braille visualization
tdt tol analyze TOL@1 --3d --visualize
# 3D Monte Carlo simulation
tdt tol analyze TOL@1 --3d --method-3d monte-carlo
| Verdict | Meaning | Follow-up |
|---|---|---|
| pass | All criteria met | None required |
| fail | One or more criteria not met | Action items required |
| conditional | Passed with deviations | Document justification |
| incomplete | Could not complete test | Reschedule |
| not_applicable | Test not applicable | Document rationale |
satisfied_by relationshipsMIT License
Copyright (c) 2024 Tessera Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
This software is provided for informational and educational purposes. While Tessera can help organize engineering documentation, it is not a substitute for professional engineering judgment, certified quality management systems, or regulatory compliance tools.
Users are responsible for:
Tessera is not certified for use in regulated industries (medical devices, aerospace, automotive safety systems, etc.) without independent validation by qualified professionals.