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 source of truth lives in z-shell/.github/.github/lib/labels.yml. Rollout across repositories is handled through organization maintenance automation.

Work Type Labelsโ€‹

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

LabelColorDescription
type: bug#b60205 #b60205Something is broken or behaving incorrectly
type: feature#0e8a16 #0e8a16A request for new behavior or capability
type: docs#0052cc #0052ccDocumentation-only work
type: question#d4c5f9 #d4c5f9Support, clarification, or usage question
type: maintenance#531999 #531999Non-feature maintenance, cleanup, or org work
type: membership#6f42c1 #6f42c1Membership and organization-role requests
type: handoff#5319e7 #5319e7Cross-agent or cross-maintainer handoff context

Area Labelsโ€‹

Use these to describe which part of the ecosystem the item touches.

LabelColorDescription
area: zi#1d76db #1d76dbZi core behavior, APIs, or documentation
area: plugin#3e16f3 #3e16f3Plugin behavior or plugin-facing work
area: annex#3e16f3 #3e16f3Annex behavior or annex-facing work
area: package#3e16f3 #3e16f3Package or package-management work
area: docs#0052cc #0052ccDocumentation systems, content, or publishing
area: ci#5319e7 #5319e7Continuous integration or GitHub Actions work
area: dependencies#fbca04 #fbca04Dependency updates or dependency-management work
area: release#d93f0b #d93f0bRelease process, versioning, or changelog work
area: meta#1d76db #1d76dbOrganization-wide policy, templates, or meta-repo work

Priority and Workflow Labelsโ€‹

Use these to describe urgency or state in the workflow.

LabelColorDescription
priority: high#ee0701 #ee0701Needs prompt attention
security#ee0701 #ee0701Security-sensitive issue or hardening work
breaking-change#d93f0b #d93f0bBreaks backward compatibility or changes a public contract
status: triage#fbca04 #fbca04Awaiting initial review or classification
status: blocked#e4e669 #e4e669Cannot proceed until an external dependency or decision changes
needs-info#f9d0c4 #f9d0c4Waiting on more detail before work can continue
good first issue#7057ff #7057ffWell-scoped starter task for a new contributor
help wanted#008672 #008672Maintainers would welcome outside help
invalid#0b467f #0b467fOff-topic, incorrect, or not actionable
duplicate#cfd3d7 #cfd3d7Covered by another issue or pull request
wontfix#ffffff #ffffffAcknowledged but not planned for implementation

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.