[Bug] Projman diagnostic failure: Repository auto-detection and label sync state issues #67

Closed
opened 2026-01-21 20:56:58 +00:00 by lmiranda · 1 comment
Owner

Summary

During /projman:labels-sync execution on personal-projects/personal-portfolio, multiple plugin issues were identified that affect usability and expected autonomous behavior.


Issue 1: Repository Auto-Detection Fails

Severity: Medium
Tools Affected: validate_repo_org, get_labels

Error Message:

Error: Use 'owner/repo' format (e.g. 'org/repo-name')

Context:
MCP tools fail when called without explicit repo parameter, even though git remote is available in cwd:

origin  ssh://git@hotserv.tailc9b278.ts.net:2222/personal-projects/personal-portfolio.git

Expected: Plugin should auto-detect repository from git remote URL.

Workaround: Manual git remote -v parsing and explicit repo parameter.


Issue 2: No Persistent Label Reference Storage

Severity: Low
Component: Skill design / plugin state

Problem:

  • Skill references skills/label-taxonomy/labels-reference.md but path doesn't exist
  • No plugin-level storage for synced label state
  • Cannot detect label changes between syncs (every sync appears as first sync)

Expected: Plugin maintains state in ~/.config/claude-code/projman/ or creates reference file automatically.


Issue 3: Unclear Skill Autonomy Expectations

Severity: Medium
Component: Skill documentation

Problem:
Skill example output shows Update local reference file? [Y/n] suggesting user confirmation, but actual expectation is full autonomous execution unless real discrepancy exists.

Recommendation: Clarify what actions are automatic vs. require confirmation.


Issue 4: Organization Labels Empty (Needs Investigation)

Severity: Info
Tool: get_labels

Observation:

{
  "organization": [],
  "repository": [...]
}

Questions:

  • Does org have labels configured?
  • Permission issue fetching org-level labels?
  • Expected behavior?

Environment

  • Repository tested: personal-projects/personal-portfolio
  • Command: /projman:labels-sync
  • Date: 2026-01-21

Labels

  • Type: Bug
  • Source: Internal
## Summary During `/projman:labels-sync` execution on `personal-projects/personal-portfolio`, multiple plugin issues were identified that affect usability and expected autonomous behavior. --- ## Issue 1: Repository Auto-Detection Fails **Severity:** Medium **Tools Affected:** `validate_repo_org`, `get_labels` **Error Message:** ``` Error: Use 'owner/repo' format (e.g. 'org/repo-name') ``` **Context:** MCP tools fail when called without explicit `repo` parameter, even though git remote is available in cwd: ``` origin ssh://git@hotserv.tailc9b278.ts.net:2222/personal-projects/personal-portfolio.git ``` **Expected:** Plugin should auto-detect repository from git remote URL. **Workaround:** Manual `git remote -v` parsing and explicit `repo` parameter. --- ## Issue 2: No Persistent Label Reference Storage **Severity:** Low **Component:** Skill design / plugin state **Problem:** - Skill references `skills/label-taxonomy/labels-reference.md` but path doesn't exist - No plugin-level storage for synced label state - Cannot detect label changes between syncs (every sync appears as first sync) **Expected:** Plugin maintains state in `~/.config/claude-code/projman/` or creates reference file automatically. --- ## Issue 3: Unclear Skill Autonomy Expectations **Severity:** Medium **Component:** Skill documentation **Problem:** Skill example output shows `Update local reference file? [Y/n]` suggesting user confirmation, but actual expectation is full autonomous execution unless real discrepancy exists. **Recommendation:** Clarify what actions are automatic vs. require confirmation. --- ## Issue 4: Organization Labels Empty (Needs Investigation) **Severity:** Info **Tool:** `get_labels` **Observation:** ```json { "organization": [], "repository": [...] } ``` **Questions:** - Does org have labels configured? - Permission issue fetching org-level labels? - Expected behavior? --- ## Environment - **Repository tested:** `personal-projects/personal-portfolio` - **Command:** `/projman:labels-sync` - **Date:** 2026-01-21 ## Labels - Type: Bug - Source: Internal
Author
Owner

All Issues Addressed

Issue 1: Repository Auto-Detection Fails

Fixed in PR #66 (already merged to main)

  • Added _detect_repo_from_git() method in config.py
  • Parses git remote URL to auto-detect owner/repo
  • Supports SSH, SSH short, HTTPS, HTTP URL formats

Issue 2: No Persistent Label Reference Storage

Clarified in PR #68/#69

  • Updated documentation to explain that labels are fetched dynamically from Gitea
  • The reference file (skills/label-taxonomy/labels-reference.md) is static documentation, not a sync target
  • Each /labels-sync fetches fresh data - no persistent state needed

Issue 3: Unclear Skill Autonomy Expectations

Fixed in PR #68/#69

  • Removed misleading [Y/n] prompts from documentation
  • Clarified that execution is autonomous
  • Updated expected output examples to reflect actual behavior

Issue 4: Organization Labels Empty

Fixed in PR #66 (already merged to main)

  • Improved is_org_repo() to use /orgs/{owner} endpoint
  • Correctly detects organizations vs user accounts
  • User accounts correctly show empty org labels (expected behavior)

PRs Created

  • PR #66: Repo auto-detection + org validation (merged to main)
  • PR #68: Documentation clarification (merged to development)
  • PR #69: Release to main (ready for merge)

Next Steps

Merge PR #69 to deploy documentation improvements to main.

## All Issues Addressed ### Issue 1: Repository Auto-Detection Fails ✅ **Fixed in PR #66** (already merged to main) - Added `_detect_repo_from_git()` method in `config.py` - Parses git remote URL to auto-detect `owner/repo` - Supports SSH, SSH short, HTTPS, HTTP URL formats ### Issue 2: No Persistent Label Reference Storage ✅ **Clarified in PR #68/#69** - Updated documentation to explain that labels are fetched **dynamically** from Gitea - The reference file (`skills/label-taxonomy/labels-reference.md`) is static documentation, not a sync target - Each `/labels-sync` fetches fresh data - no persistent state needed ### Issue 3: Unclear Skill Autonomy Expectations ✅ **Fixed in PR #68/#69** - Removed misleading `[Y/n]` prompts from documentation - Clarified that execution is autonomous - Updated expected output examples to reflect actual behavior ### Issue 4: Organization Labels Empty ✅ **Fixed in PR #66** (already merged to main) - Improved `is_org_repo()` to use `/orgs/{owner}` endpoint - Correctly detects organizations vs user accounts - User accounts correctly show empty org labels (expected behavior) ### PRs Created - PR #66: Repo auto-detection + org validation (merged to main) - PR #68: Documentation clarification (merged to development) - PR #69: Release to main (ready for merge) ### Next Steps Merge PR #69 to deploy documentation improvements to main.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: personal-projects/leo-claude-mktplace#67