Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Jan 31, 2026

Users need to install jobs globally (shared across projects) or locally (project-specific), and port existing jobs between these scopes.

Changes

Job storage locations

  • Local: .deepwork/jobs/ (project-specific, version controlled)
  • Global: ~/.config/deepwork/jobs/ (XDG-compliant, user-wide)

Scope selection during creation

  • make_new_job.sh accepts --scope local|global parameter
  • implement step prompts user for scope choice with guidance

Job discovery and sync

  • sync discovers and loads jobs from both local and global directories
  • Output shows scope labels for clarity:
    → Found 2 job(s) in local scope (.deepwork/jobs)
    → Found 1 job(s) in global scope (~/.config/deepwork/jobs)
    

Job porting

  • New deepwork port command provides interactive menu
  • Sources: local, global, standard library (GitHub remote: placeholder)
  • Handles overwrites with confirmation prompt

Implementation

New modules:

  • utils/xdg.py - XDG Base Directory utilities
  • utils/job_location.py - JobScope enum, multi-location discovery
  • cli/port.py - Interactive porting command

Modified:

  • cli/sync.py - Multi-scope job discovery via discover_all_jobs_dirs()
  • standard_jobs/deepwork_jobs/make_new_job.sh - Added --scope parameter
  • standard_jobs/deepwork_jobs/steps/implement.md - Scope selection prompt

Jobs with identical names in different scopes are treated as separate entities.

Original prompt

This section details on the original issue you should resolve

<issue_title>Global Job and Porting existing jobs to Global</issue_title>
<issue_description>> As a user I want to be asked if I want my job to be installed locally or globally.

This should be stored in the users home folder in standard xdg config.

as user I want to be able to port a job to global claude/Gemini etc from my local project

This should ask the user where they want to port from eg /deepwork standard deepwork library, local to global, in github remote`</issue_description>

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 4 commits January 31, 2026 03:45
Co-authored-by: ncrmro <8276365+ncrmro@users.noreply.github.com>
- Added XDG config utilities for global job storage
- Updated make_new_job.sh to support --scope parameter (local/global)
- Updated implement step to ask users about installation scope
- Modified sync command to discover jobs from both local and global directories
- Created port command for moving jobs between scopes and sources
- Added comprehensive tests for all new functionality
- All tests passing and code passes linting

Co-authored-by: ncrmro <8276365+ncrmro@users.noreply.github.com>
- Fix ValueError handling in port command's relative path calculation
- Improve test clarity for duplicate job names in different scopes
- Rename test to better reflect what it's actually testing

Co-authored-by: ncrmro <8276365+ncrmro@users.noreply.github.com>
- Updated test to expect "Examples:" (plural) instead of "Example:"
- All 678 tests now passing

Co-authored-by: ncrmro <8276365+ncrmro@users.noreply.github.com>
Copilot AI changed the title [WIP] Add option for global job installation Add global job installation and cross-scope porting Jan 31, 2026
Copilot AI requested a review from ncrmro January 31, 2026 03:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Global Job and Porting existing jobs to Global

2 participants