Skip to main content

๐Ÿ“‹ Project Management

Project Trackerโ€‹

All work across the Z-Shell organization is tracked in a single unified project:

Z-Shell Tracker โ†’



The project pulls issues and pull requests from every repository in the z-shell GitHub organization into one place, so nothing slips through the cracks.

Project Viewsโ€‹

ViewLayoutPurpose
TriageTableNew items awaiting investigation โ€” start here
Bugs BoardBoardActive bug work, grouped by Status
Features BoardBoardFeature and enhancement work
Active SprintBoardEverything in the current 2-week sprint
RoadmapRoadmapPlanned work on a timeline
By RepositoryTableAll items grouped by source repo

Custom Fieldsโ€‹

Each item in the project can have the following fields set:

FieldValuesNotes
StatusTriage ยท Todo ยท In Progress ยท In Review ยท Done ยท Blocked ยท Won't FixSet by maintainers during triage
Priority๐Ÿ”ด Critical ยท ๐ŸŸ  High ยท ๐ŸŸก Medium ยท ๐Ÿ”ต Low ยท None
Item TypeBug ยท Feature ยท Enhancement ยท Docs ยท Security ยท Performance ยท Chore ยท CI
EffortXS ยท S ยท M ยท L ยท XLRough size estimate
SprintSprint 1 โ€ฆ Sprint N2-week iterations starting Mondays

Triage Workflowโ€‹

New issues and PRs are automatically added to the project with Status = Triage. A maintainer reviews the item and:

  1. Sets Item Type (Bug, Feature, etc.)
  2. Sets Priority
  3. Moves Status to Todo (or Won't Fix / Blocked if appropriate)
  4. Assigns to a Sprint if it should be worked on soon
  5. Adds the appropriate label

Capturing Deferred Workโ€‹

Do not leave postponed work only in local diffs, review notes, or memory. Create or update an issue in the repository that owns the work so it is added to the shared tracker automatically.

When splitting or deferring work:

  1. Create one issue per logical task so each item can be prioritized and completed independently.
  2. Include enough context for another maintainer to resume later: the observed problem, why it matters, relevant files, and any known constraints.
  3. Suggest the likely Item Type, Priority, and Effort during triage.
  4. Use the canonical labels instead of repo-local tracking conventions.

Sprint Cadenceโ€‹

Sprints run for 2 weeks, starting every other Monday.

At the end of each sprint, incomplete items are moved to the next sprint or returned to the backlog (Todo without a sprint assignment).

Priority Definitionsโ€‹

PriorityMeaning
๐Ÿ”ด CriticalData loss, security vulnerability, or complete breakage with no workaround
๐ŸŸ  HighSignificantly impacts users; should be in the current or next sprint
๐ŸŸก MediumImportant but not urgent; planned within the next few sprints
๐Ÿ”ต LowNice to have; no fixed timeline
NoneNot yet triaged or genuinely optional

Automationโ€‹

Every repository in the organization has a .github/workflows/project-tracker.yml workflow that automatically adds new issues and pull requests to the project. No manual steps are required from contributors.


Labelsโ€‹

All repositories in the z-shell organization use the same canonical label set. Labels are applied automatically by the stale bot or manually during triage.

The label set is maintained by scripts/sync-labels.sh in z-shell/src โ€” run it to re-sync labels after adding a new repository.

Type Labelsโ€‹

Use these to describe what kind of work an issue or PR represents.

LabelColorDescription
bug ๐Ÿ›#d73a4a #d73a4aSomething isn't working
feature-request ๐Ÿ’ก#0075ca #0075caNew feature or request
enhancement โœจ#a2eeef #a2eeefImprovement to existing functionality
documentation ๐Ÿ“#0052cc #0052ccDocumentation-only changes
performance ๐Ÿš€#006b75 #006b75Performance improvements
security ๐Ÿ›ก๏ธ#ee0701 #ee0701Security vulnerability or hardening
breaking-change ๐Ÿ’ฅ#d93f0b #d93f0bBreaks backward compatibility
dependencies ๐Ÿ“ฆ#0366d6 #0366d6Dependency updates
chore ๐Ÿ”ง#c5def5 #c5def5Routine maintenance, no behavior change
refactor โ™ป๏ธ#5319e7 #5319e7Code refactor, no behavior change
ci โš™๏ธ#1d76db #1d76dbCI/CD pipeline changes

Status / Workflow Labelsโ€‹

Use these to describe where an issue stands in the process.

LabelColorDescription
triage ๐Ÿ”#fbca04 #fbca04Needs investigation before action
in-progress ๐Ÿšง#f9d0c4 #f9d0c4Currently being worked on
blocked โ›”#e4e669 #e4e669Blocked on external dependency/decision
stale ๐Ÿ’ค#f2f2f2 #f2f2f2No activity for an extended period
invalid โš ๏ธ#e4e669 #e4e669Off-topic, cannot reproduce, or incorrect
wontfix ๐Ÿšซ#ffffff #ffffffWill not be fixed
no-stale ๐Ÿ”’#0e8a16 #0e8a16Exempt from stale-bot closing

Community Labelsโ€‹

LabelColorDescription
help-wanted ๐Ÿ™‹#008672 #008672Extra attention or expertise needed
good-first-issue ๐ŸŒฑ#7057ff #7057ffGood for newcomers
Q&A โœ๏ธ#d4c5f9 #d4c5f9Questions and answers

Syncing Labelsโ€‹

To apply the canonical label set to a repository:

# Single repo
echo "my-repo" > /tmp/repos.txt
./scripts/sync-labels.sh z-shell /tmp/repos.txt

# All org repos
./scripts/sync-labels.sh z-shell scripts/repos.txt

The --force flag means existing labels with the same name are updated to match the canonical color and description. Labels not in the canonical set are not deleted automatically โ€” remove them manually if desired.