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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for quber_workflow-0.3.7.tar.gz
Algorithm Hash digest
SHA256 cb471abc296f97700c52dc5f3d2cb7e9c83fe11022af5859a21a7b188996b522
MD5 4a81236ef7794a4c5df820fa9cdf01dd
BLAKE2b-256 41c9858830a2967662b38c6fc245b1b8245ad213a5607c3be8bda06852cf25b9

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for quber_workflow-0.3.7-py3-none-any.whl
Algorithm Hash digest
SHA256 bccf807aedf48408394d67d8a1bdf9eee7a710f29627ede4e77ecdff5def39cf
MD5 b30e074a6cf4a315f2e2516b8e4098ad
BLAKE2b-256 0ca3a2791a9380c9ae0f5834d735d98b85ea290fc7cda62ae2be74eadad93cd5

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