A production-grade CLI tool for synchronizing markdown specifications with issue trackers
Project description
spectryn
The Universal Bridge between Product Specifications and Issue Trackers
Synchronize Markdown, YAML, JSON, and Notion specs with Jira, GitHub, Linear, Azure DevOps, Asana, GitLab, Trello, Monday.com, Shortcut, ClickUp, Bitbucket, YouTrack, and Confluence
Core Features • Installation • Quick Start • Supported Platforms • AI-Assisted Sync • Architecture
🚀 Overview
spectryn is a production-grade CLI tool designed to eliminate the gap between product documentation and issue tracking. It allows teams to maintain their product specifications as "Docs-as-Code" while keeping project management tools perfectly in sync.
Whether you write stories in Markdown, manage roadmaps in YAML, or organize features in Notion, spectryn provides a unified command-line interface to synchronize them across multiple enterprise trackers.
✨ Core Features
- 🔄 Universal Sync - Multi-platform support for Jira, GitHub, Linear, Azure DevOps, Asana, GitLab, Trello, Monday.com, Shortcut, ClickUp, Bitbucket, YouTrack, and Confluence.
- 📝 Rich Input Formats - Support for Markdown, YAML, TOML, JSON, CSV, and even Notion.
- 🤖 AI-Assisted Fixing - Intelligent validation and auto-fixing of specifications using Claude, Ollama, or Aider.
- 🛡️ Safe by Design - Mandatory dry-runs, detailed diff previews, and automatic backups.
- ⚡ Developer Experience - Watch mode, shell completions, and TUI dashboards.
- 📊 Enterprise Readiness - Audit trails, OpenTelemetry tracing, and conflict detection.
🛠 Supported Platforms
| Inputs (Parsers) | Outputs (Trackers) |
|---|---|
| ✅ Markdown (Standard & GFM) | ✅ Jira (Cloud & Data Center) |
| ✅ YAML | ✅ GitHub Issues |
| ✅ TOML | ✅ Linear |
| ✅ JSON | ✅ Azure DevOps |
| ✅ CSV/Excel | ✅ Confluence |
| ✅ AsciiDoc | ✅ Asana |
| ✅ Notion | ✅ GitLab |
| ✅ TOON | ✅ Trello |
| ✅ Monday.com | |
| ✅ Shortcut | |
| ✅ ClickUp | |
| ✅ Bitbucket | |
| ✅ YouTrack |
📦 Installation
Using pipx (Recommended)
pipx install spectryn
Using Homebrew (macOS/Linux)
brew tap adriandarian/spectra https://github.com/adriandarian/spectra
brew install spectra
From Source
git clone https://github.com/adriandarian/spectryn.git
cd spectryn
pip install -e ".[dev]"
🏁 Quick Start
1. Configure your environment
Create a .spectryn.yaml file in your project root:
# Tracker Configuration
jira:
url: https://your-company.atlassian.net
email: your-email@company.com
api_token: your-api-token
project: PROJ
# Sync Preferences
sync:
execute: false # Dry-run by default
no_confirm: false # Ask for confirmation
backup_enabled: true
2. Validate your specifications
Check your markdown or YAML file for formatting issues:
spectryn --validate --markdown EPIC.md
3. Synchronize
Preview the changes (dry-run) and then execute when ready:
# Preview changes
spectryn --markdown EPIC.md --epic PROJ-123
# Execute sync
spectryn --markdown EPIC.md --epic PROJ-123 --execute
🤖 AI-Assisted Sync
spectryn integrates with modern LLMs to help you maintain high-quality specifications.
- Auto-Fix: Automatically correct formatting errors in your markdown.
- Guided Generation: Generate new epic templates from existing tracker data.
- Smart Matching: Fuzzy title matching to connect local specs with remote issues.
# Detect available AI tools
spectryn --list-ai-tools
# Auto-fix markdown formatting
spectryn --validate --markdown EPIC.md --auto-fix --ai-tool claude
🏗 Architecture
Built on Clean Architecture principles, spectryn ensures maximum extensibility through its Ports-and-Adapters (Hexagonal) design.
src/spectryn/
├── core/ # Domain Layer (Entities, Enums, Ports)
├── adapters/ # Infrastructure (Parsers, API Clients, Trackers)
├── application/ # Use Cases (Sync Orchestration, Command Handlers)
└── cli/ # Interface (Commands, TUI, Output Formatting)
- Ports & Adapters: Core logic remains agnostic of external platforms.
- Command Pattern: Every write operation is recorded for auditability and rollback.
- Domain-Driven: Rich entities like
UserStoryandEpicencapsulate business rules.
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for details on our development workflow and standards.
# Run quality checks before submitting
ruff format src tests && ruff check src tests --fix && mypy src/spectryn && pytest
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file spectryn-1.0.0.tar.gz.
File metadata
- Download URL: spectryn-1.0.0.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff9f4368bbfd4685fe1993413cf1301ea46193b6a7db7773aa342aeeadb9d09a
|
|
| MD5 |
453fa3ce5a70c2987012663d8c102450
|
|
| BLAKE2b-256 |
c2c39441b3444b464b1c83f4a3fd83ef22e26ceff0eff53e4b0f57b91303c4d3
|
Provenance
The following attestation bundles were made for spectryn-1.0.0.tar.gz:
Publisher:
release.yml on adriandarian/spectryn
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
spectryn-1.0.0.tar.gz -
Subject digest:
ff9f4368bbfd4685fe1993413cf1301ea46193b6a7db7773aa342aeeadb9d09a - Sigstore transparency entry: 804578500
- Sigstore integration time:
-
Permalink:
adriandarian/spectryn@da91d60c3d7b4f2c36719e330b51d0673b9096d6 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/adriandarian
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@da91d60c3d7b4f2c36719e330b51d0673b9096d6 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file spectryn-1.0.0-py3-none-any.whl.
File metadata
- Download URL: spectryn-1.0.0-py3-none-any.whl
- Upload date:
- Size: 1.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c8a102e9f0263ea7225a4b8cdd4a1056301aa04cd2b270cedb895b0de40462f
|
|
| MD5 |
fce2be37528df7eb7645ce07774de27f
|
|
| BLAKE2b-256 |
f99a4bc7c4c61fa4b566ab6c1e69e3a09d9646b59225327dd5596d681c76dd07
|
Provenance
The following attestation bundles were made for spectryn-1.0.0-py3-none-any.whl:
Publisher:
release.yml on adriandarian/spectryn
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
spectryn-1.0.0-py3-none-any.whl -
Subject digest:
2c8a102e9f0263ea7225a4b8cdd4a1056301aa04cd2b270cedb895b0de40462f - Sigstore transparency entry: 804578501
- Sigstore integration time:
-
Permalink:
adriandarian/spectryn@da91d60c3d7b4f2c36719e330b51d0673b9096d6 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/adriandarian
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@da91d60c3d7b4f2c36719e330b51d0673b9096d6 -
Trigger Event:
workflow_dispatch
-
Statement type: