๐ 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โ
| View | Layout | Purpose |
|---|---|---|
| Triage | Table | New items awaiting investigation โ start here |
| Bugs Board | Board | Active bug work, grouped by Status |
| Features Board | Board | Feature and enhancement work |
| Active Sprint | Board | Everything in the current 2-week sprint |
| Roadmap | Roadmap | Planned work on a timeline |
| By Repository | Table | All items grouped by source repo |
Custom Fieldsโ
Each item in the project can have the following fields set:
| Field | Values | Notes |
|---|---|---|
| Status | Triage ยท Todo ยท In Progress ยท In Review ยท Done ยท Blocked ยท Won't Fix | Set by maintainers during triage |
| Priority | ๐ด Critical ยท ๐ High ยท ๐ก Medium ยท ๐ต Low ยท None | |
| Item Type | Bug ยท Feature ยท Enhancement ยท Docs ยท Security ยท Performance ยท Chore ยท CI | |
| Effort | XS ยท S ยท M ยท L ยท XL | Rough size estimate |
| Sprint | Sprint 1 โฆ Sprint N | 2-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:
- Sets Item Type (Bug, Feature, etc.)
- Sets Priority
- Moves Status to
Todo(orWon't Fix/Blockedif appropriate) - Assigns to a Sprint if it should be worked on soon
- 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:
- Create one issue per logical task so each item can be prioritized and completed independently.
- Include enough context for another maintainer to resume later: the observed problem, why it matters, relevant files, and any known constraints.
- Suggest the likely Item Type, Priority, and Effort during triage.
- 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โ
| Priority | Meaning |
|---|---|
| ๐ด Critical | Data loss, security vulnerability, or complete breakage with no workaround |
| ๐ High | Significantly impacts users; should be in the current or next sprint |
| ๐ก Medium | Important but not urgent; planned within the next few sprints |
| ๐ต Low | Nice to have; no fixed timeline |
| None | Not 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.
| Label | Color | Description |
|---|---|---|
bug ๐ | #d73a4a | Something isn't working |
feature-request ๐ก | #0075ca | New feature or request |
enhancement โจ | #a2eeef | Improvement to existing functionality |
documentation ๐ | #0052cc | Documentation-only changes |
performance ๐ | #006b75 | Performance improvements |
security ๐ก๏ธ | #ee0701 | Security vulnerability or hardening |
breaking-change ๐ฅ | #d93f0b | Breaks backward compatibility |
dependencies ๐ฆ | #0366d6 | Dependency updates |
chore ๐ง | #c5def5 | Routine maintenance, no behavior change |
refactor โป๏ธ | #5319e7 | Code refactor, no behavior change |
ci โ๏ธ | #1d76db | CI/CD pipeline changes |
Status / Workflow Labelsโ
Use these to describe where an issue stands in the process.
| Label | Color | Description |
|---|---|---|
triage ๐ | #fbca04 | Needs investigation before action |
in-progress ๐ง | #f9d0c4 | Currently being worked on |
blocked โ | #e4e669 | Blocked on external dependency/decision |
stale ๐ค | #f2f2f2 | No activity for an extended period |
invalid โ ๏ธ | #e4e669 | Off-topic, cannot reproduce, or incorrect |
wontfix ๐ซ | #ffffff | Will not be fixed |
no-stale ๐ | #0e8a16 | Exempt from stale-bot closing |
Community Labelsโ
| Label | Color | Description |
|---|---|---|
help-wanted ๐ | #008672 | Extra attention or expertise needed |
good-first-issue ๐ฑ | #7057ff | Good for newcomers |
Q&A โ๏ธ | #d4c5f9 | Questions 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.