Skip to main content

Shared Claude Code workflow for Quber projects (Jira + GitHub automation)

Project description

Quber Workflow

Shared Claude Code workflow for Quber projects with Jira and GitHub automation.

PyPI Python License

What is Quber Workflow?

quber-workflow provides a standardized Claude Code workflow system for managing development workflows across Quber projects. It integrates Jira issue tracking with GitHub's pull request workflow through Claude Code agents and skills, with built-in LangSmith tracing for cost accountability.

Key Features

  • Jinja2 Template System - All managed files rendered from templates with project-specific config
  • Automated Jira Management - Agents handle issue creation, updates, and transitions
  • GitHub PR Automation - Streamlined pull request creation and management
  • LangSmith Tracing - Full token usage tracking for main agents and subagents
  • Agent Teams Support - Experimental multi-agent coordination with subagent tracing
  • Deny-by-Default Security - Enforces proper agent delegation and permissions
  • Quality Standards - Built-in PR evidence requirements and workflow specs
  • Lightweight - 95%+ reduction in context usage vs MCP servers

Installation

pip install quber-workflow

Or using uv:

uv pip install quber-workflow

Quick Start

1. Initialize a New Project

Navigate to your project directory and run:

quber-workflow init \
  --project my-project \
  --repo username/my-project \
  --jira-prefix PROJ \
  --jira-label my-project \
  --jira-url https://yoursite.atlassian.net

Or use interactive mode (prompts for missing values):

quber-workflow init

Or use a YAML config file:

quber-workflow init --config workflow.yaml

This creates:

.claude/
├── agents/
│   ├── jira-workflow.md       # Jira operations agent
│   ├── github-workflow.md     # GitHub operations agent
│   └── epic-manager.md       # Epic governance agent
├── hooks/
│   ├── stop_hook.sh           # LangSmith tracing (main session)
│   └── subagent_stop_hook.sh  # LangSmith tracing (subagents)
├── skills/
│   ├── github-operations/     # GitHub CLI scripts + SKILL.md
│   └── jira-operations/       # Jira REST API scripts + SKILL.md
├── settings.json              # Permissions, hooks, agent teams
└── .quber-workflow.yaml       # Saved config for updates
.github/workflows/
└── jira-transition.yml        # Automated Jira status updates
docs/
├── GITHUB_WORKFLOW_SPEC.md
├── ISSUES_SPEC.md
├── PR_EVIDENCE_GUIDELINES.md
└── PR_EVIDENCE_CHECKLIST.md
CLAUDE.md                      # Agent delegation rules
.env.example                   # Environment variable template

2. Configure Environment Variables

Copy .env.example to .env and fill in your credentials:

# GitHub CLI authentication
GH_TOKEN=ghp_...

# Jira REST API authentication
ATLASSIAN_USER_EMAIL=you@example.com
ATLASSIAN_API_TOKEN=your-api-token
ATLASSIAN_SITE_NAME=https://yoursite.atlassian.net

# LangSmith tracing (enabled by default)
TRACE_TO_LANGSMITH=true
LANGSMITH_API_KEY=lsv2_pt_...
CC_LANGSMITH_PROJECT=my-project
CC_LANGSMITH_RUN_NAME=my-project

3. Configure GitHub Secrets

For the Jira transition workflow, add these repository secrets:

  • JIRA_BASE_URL - Your Jira instance URL (e.g., https://yoursite.atlassian.net)
  • JIRA_USER_EMAIL - Your Jira account email
  • JIRA_API_TOKEN - Jira API token

Init Options

Flag Default Description
--project Current directory name Project name
--repo (required) GitHub repo (owner/repo)
--jira-prefix QUE Jira project prefix for issue keys
--jira-label Same as project Label auto-applied to Jira issues
--jira-url (required) Jira instance URL
--no-epic-manager Enabled Disable epic-manager agent
--no-langsmith Enabled Disable LangSmith tracing hooks
--no-agent-teams Enabled Disable experimental agent teams
--enable-logfire Disabled Enable Pydantic Logfire observability
--config YAML config file (overrides all flags)

Usage

Update Workflow Files

Update to the latest workflow templates:

quber-workflow update

This re-renders templates from saved config while preserving your customizations.

Migrate from Manual Setup

If you previously set up workflows manually, migrate to the managed version:

quber-workflow migrate

This creates backups before migrating your existing setup.

Clean Git Exclusions

Remove workflow entries from .git/info/exclude:

quber-workflow clean

How It Works

Architecture

┌─────────────────────────────────────┐
│   Main Claude Agent (Your Project)  │
└────────────┬────────────────────────┘
             │
     ┌───────┴────────┐
     │                │
┌────▼─────┐   ┌─────▼────────┐
│  Jira    │   │   GitHub     │
│ Workflow │   │  Workflow    │
│  Agent   │   │   Agent      │
└────┬─────┘   └─────┬────────┘
     │               │
┌────▼─────┐   ┌─────▼────────┐
│  Jira    │   │   GitHub     │
│Operations│   │ Operations   │
│  Skill   │   │    Skill     │
└────┬─────┘   └─────┬────────┘
     │               │
┌────▼─────┐   ┌─────▼────────┐
│   Jira   │   │   GitHub     │
│ REST API │   │   gh CLI     │
└──────────┘   └──────────────┘

LangSmith Tracing

When enabled (default), every Claude Code response and subagent invocation is traced to LangSmith with full token usage data:

  • Main session tracesStop hook processes the session transcript
  • Subagent tracesSubagentStop hook processes each subagent's transcript independently
  • Run naming — Main session: {project}, Subagents: {project}({agent_type}) (e.g., quber-analyst(Explore))
  • Parent linking — Subagent traces include parent_session_id in metadata

Why This Approach?

Minimal Context Usage

  • Skills: ~100 tokens when loaded on-demand
  • MCP Servers: ~46,000 tokens loaded upfront
  • Result: 99%+ reduction in context overhead

Full Control

  • All scripts visible in your repository
  • Easy to audit, modify, and test
  • No black-box dependencies

Cost Accountability

  • Every LLM call (main + subagent) traced with token counts
  • Per-project visibility in LangSmith dashboard
  • Cache usage tracking (read + creation)

Requirements

Runtime

  • Python 3.9+
  • Claude Code CLI
  • gh CLI (GitHub operations)
  • jq (JSON parsing in hook and skill scripts)
  • curl (Jira REST API, LangSmith API)
  • uuidgen (LangSmith trace ID generation)

Development

See CONTRIBUTING.md for development setup.

Commands Reference

Command Description
quber-workflow init Initialize workflow in a new project
quber-workflow update Update workflow files to latest version
quber-workflow migrate Migrate from manual setup (creates backups)
quber-workflow clean Remove workflow entries from git exclude

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for:

  • Development environment setup
  • Running tests and code quality checks
  • Publishing releases
  • Project structure

License

MIT License - see LICENSE file for details.

Related Projects

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quber_workflow-0.3.1.tar.gz (80.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quber_workflow-0.3.1-py3-none-any.whl (110.5 kB view details)

Uploaded Python 3

File details

Details for the file quber_workflow-0.3.1.tar.gz.

File metadata

  • Download URL: quber_workflow-0.3.1.tar.gz
  • Upload date:
  • Size: 80.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.6

File hashes

Hashes for quber_workflow-0.3.1.tar.gz
Algorithm Hash digest
SHA256 4877aa1ba746b217dc760fe0312bd3e4238355d7781980b3494aea5910f5e960
MD5 35a9ca776eacaba072c8da73206d21c2
BLAKE2b-256 7c9d7a73a3b5aba2eedd1d97db70b9adc90095e1920961ad3dc968a849a6db7e

See more details on using hashes here.

File details

Details for the file quber_workflow-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: quber_workflow-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 110.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.6

File hashes

Hashes for quber_workflow-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9b6b203134f52bfb63e0b596f7ad49abd4fd95527418004aca034804ad4e4b79
MD5 ba26b5d4a9a09b683d9b56ef3e0fd5c7
BLAKE2b-256 30518751a93babb7da43288419f9feeb80d871a2467d3ca801efc279c8d97b07

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page