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.2.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.2-py3-none-any.whl (110.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: quber_workflow-0.3.2.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.2.tar.gz
Algorithm Hash digest
SHA256 e11a3fe4a3f9b2f369addfa400acae2db2bb73b43a84aee9417377ca712d659a
MD5 5657ed8c199508acf7b10207833ec94c
BLAKE2b-256 1f045a570ee2352dff54066c2cf31ff30764422af7204f9a7fe4917a96e39e4e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quber_workflow-0.3.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7c821e59434b1a4c3d3a045c435747db69b1aaf7f64ebbfa1ba2dc5aadccd6e8
MD5 b5c22eabd68a6317f58883690cb0f9c1
BLAKE2b-256 7d5cac4243efa9b178afbe5498bc041a10cc14898d8fd82410a3455ad2372075

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