Skip to content

feat: integrate /top5 priority aggregation into pm-architect#2941

Merged
rysweet merged 10 commits intomainfrom
feat/pm-architect-top5
Mar 8, 2026
Merged

feat: integrate /top5 priority aggregation into pm-architect#2941
rysweet merged 10 commits intomainfrom
feat/pm-architect-top5

Conversation

@rysweet
Copy link
Owner

@rysweet rysweet commented Mar 7, 2026

Summary

  • Integrates Top 5 priority aggregation directly into pm-architect (not as a standalone skill)
  • Adds generate_top5.py script + 31 unit tests to pm-architect/scripts/
  • Adds Pattern 5 (Quick Priority View) and Pattern 6 (Daily Standup) to SKILL.md
  • Adds /top5 as an explicit trigger for pm-architect

Architecture Decision

Per discussion: all new PM capabilities (top5, standup, workiq bridge, cross-project) should live inside pm-architect rather than as independent skills. This keeps the PM system cohesive.

Supersedes closed PR #2940 (standalone /top5 skill).

What Changed

File Change
SKILL.md Added /top5 trigger, Patterns 5 & 6, updated scripts list
scripts/generate_top5.py Priority aggregation across 4 sub-skills (322 lines)
scripts/tests/test_generate_top5.py 31 unit tests (325 lines)
scripts/tests/conftest.py Added pm_dir, sample_backlog, populated_pm fixtures

Aggregation Weights

  • Backlog priority: 35%
  • Workstream urgency: 25%
  • Roadmap alignment: 25%
  • Delegation readiness: 15%

Test plan

  • All 31 new tests passing
  • All 67 existing pm-architect tests still passing (5 pre-existing async failures unchanged)
  • Manual test: invoke /top5 in a project with .pm/ state

Implements Milestone 1 of #2932

🤖 Generated with Claude Code

@github-actions
Copy link
Contributor

github-actions bot commented Mar 7, 2026

🤖 Auto-fixed version bump

The version in pyproject.toml has been automatically bumped to the next patch version.

If you need a minor or major version bump instead, please update pyproject.toml manually and push the change.

@github-actions
Copy link
Contributor

github-actions bot commented Mar 7, 2026

Repo Guardian - Passed

All changed files are durable project infrastructure:

  • Reusable, parameterized priority aggregation script
  • Comprehensive test suite (31 unit tests)
  • Documentation updates for usage patterns
  • Version bump

No ephemeral content detected. ✅

AI generated by Repo Guardian

@github-actions
Copy link
Contributor

github-actions bot commented Mar 8, 2026

🤖 Automated Triage Report

Risk Level: MEDIUM
Priority: MEDIUM
Recommendation: Needs Review

Analysis Summary

Well-structured feature addition that integrates /top5 priority aggregation into pm-architect. Includes good test coverage (31 unit tests) and follows additive change pattern.

✅ Positive Indicators

  • Includes 31 unit tests for new functionality
  • Additive change - no deletions to existing code
  • Architecture decision documented in PR description
  • Adds explicit /top5 trigger
  • Integrates into existing skill rather than creating fragmentation
  • Well-documented patterns in SKILL.md

⚠️ Key Concerns

  1. Architecture: Decision rationale to integrate vs. standalone needs review
  2. Integration: Interaction with existing pm-architect patterns needs validation
  3. CI Status: Unknown (PR < 3 hours old)
  4. Size: Moderate additions (1,014 lines)

📋 Required Before Merge

  1. ✅ Run and verify the 31 included unit tests pass
  2. 🧪 Test /top5 trigger activation
  3. 🧪 Validate integration with existing pm-architect patterns
  4. 📖 Review architecture decision rationale
  5. 🧪 Test Daily Standup pattern (Pattern 6)

Labels Applied

  • triage:complete - Initial triage completed
  • triage:medium-risk - Moderate scope, good test coverage
  • triage:needs-review - Architecture and integration review needed

Generated by PR Triage Automation - 2026-03-08 02:31 UTC

AI generated by PR Triage Agent

@github-actions
Copy link
Contributor

github-actions bot commented Mar 8, 2026

🤖 Auto-fixed version bump

The version in pyproject.toml has been automatically bumped to the next patch version.

If you need a minor or major version bump instead, please update pyproject.toml manually and push the change.

rysweet and others added 5 commits March 7, 2026 19:36
Merge top5 priority aggregation directly into pm-architect rather than
as a standalone skill. Adds Pattern 5 (Quick Priority View) and Pattern 6
(Daily Standup) to the orchestrator.

Files added/modified:
- scripts/generate_top5.py: Aggregates priorities across backlog-curator,
  workstream-coordinator, roadmap-strategist, and work-delegator into a
  strict Top 5 ranked list (weights: 35/25/25/15)
- scripts/tests/test_generate_top5.py: 31 unit tests covering extraction,
  aggregation, ranking, tiebreaking, and edge cases
- scripts/tests/conftest.py: Added pm_dir, sample_backlog_items, and
  populated_pm fixtures for top5 testing
- SKILL.md: Added /top5 trigger, Pattern 5 and 6, updated scripts list

Closes milestone 1 of #2932

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Rewrites generate_top5.py to query live GitHub data instead of reading
static .pm/ YAML files. Sources issues and PRs across multiple GitHub
accounts via gh CLI search API.

- Reads .pm/sources.yaml for account/repo configuration
- Fetches open issues and PRs via gh api search/issues
- Scores by: label priority, staleness, comment activity, draft status
- Falls back to .pm/backlog/ for local overrides when GitHub unavailable
- Restores original gh account after multi-account queries
- Weights: issues 40%, PRs 30%, roadmap alignment 20%, local 10%

Tested live: 116 candidates from rysweet + rysweet_microsoft accounts
29 unit tests passing (mocked gh calls + aggregation logic)

Implements Milestone 0 of #2932

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove dead `env` variable and unused comment in run_gh()
- Simplify get_current_gh_account() from fragile stderr parsing to `gh api user --jq`
- Fix lstrip("-* ") bug in extract_roadmap_goals() using removeprefix()
- Rename shadow variable `l` to `lbl` in list comprehensions for readability
- Fix SKILL.md weight documentation to match actual code (40/30/20/10)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Five gadugi-agentic-test YAML scenarios covering:
- Smoke test: valid JSON output with expected keys
- GitHub source aggregation: end-to-end with real sources.yaml
- Error handling: malformed YAML, missing dirs, empty sources
- Local overrides: .pm/backlog + roadmap alignment scoring
- Ranking enforcement: top-5 limit, rank fields 1-5, score ordering

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@rysweet rysweet force-pushed the feat/pm-architect-top5 branch from 1698721 to c4b607f Compare March 8, 2026 03:36
…s, and repo summary

The previous output was a flat ranked list with no context for decision-making.
Now includes:

- Score breakdown per item (label_priority, staleness, activity components)
- Suggested action per item ("Merge, close, or rebase", "Fix immediately", etc.)
- Near-misses (items #6-#10 that just missed the cut)
- Per-repo summary (issue/PR counts, high-priority counts)
- Per-account summary (total work across repos)
- Full metadata preserved (labels, dates, days_stale, draft status, comments)

40 tests passing (up from 29), covering new features:
- suggest_action logic for all source types
- near_misses return from aggregate_and_rank
- build_repo_summary grouping and counting

Refs #2932

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Contributor

github-actions bot commented Mar 8, 2026

Repo Guardian - Action Required

The following files contain ephemeral project management state that will become stale as development continues and do not belong in version control:


🚫 Violations

1. .pm/backlog/items.yaml

Why flagged: Contains point-in-time backlog items with status fields (IN_PROGRESS, READY), estimated hours, and dependencies that will become stale as work progresses.

Problematic content:

- id: BL-006
  title: "Implement Haymaker event bus integration tests"
  status: IN_PROGRESS
  estimated_hours: 3

Where this should go: GitHub Issues with proper milestone tracking, or a project management tool like GitHub Projects. Backlog items are living work state, not repository documentation.


2. .pm/workstreams/ws-001.yaml and .pm/workstreams/ws-002.yaml

Why flagged: Track active workstream state with timestamps, process IDs, elapsed time, and progress notes that describe what happened "as of" specific timestamps.

Problematic content (ws-001.yaml):

status: RUNNING
started_at: "2026-03-07T10:00:00Z"
elapsed_minutes: 180
progress_notes:
  - "Started test scaffolding"
  - "Event bus mock created"
last_activity: "2026-03-07T11:00:00Z"

Where this should go: These are runtime/session artifacts that belong in external state management (database, CI/CD system, or ephemeral session storage like ~/.amplihack/state/), not committed to the repo.


3. .pm/delegations/del-001.yaml and .pm/delegations/del-002.yaml

Why flagged: Contain point-in-time delegation assignments with status (READY, PENDING) and creation timestamps that represent snapshots of work allocation.

Problematic content:

id: DEL-001
status: READY
created_at: "2026-03-07T14:00:00Z"

Where this should go: Delegation state should be tracked in issues, PR assignments, or an external project management system—not as committed YAML files that will diverge from reality.


4. .pm/roadmap.md

Why flagged: Contains "Q1 2026 Goals" with active work items that will become stale. Uses forward-looking language that creates a temporal snapshot.

Problematic content:

## Q1 2026 Goals
### PM System Enhancement
- Ship /top5 and /standup as pm-architect capabilities

Where this should go: If this is meant to be a durable product roadmap, it needs clearer framing (e.g., "Vision" or "Long-term Goals") without quarter-specific commitments. Current version reads like quarterly planning notes. Consider GitHub Milestones or a proper product roadmap document that's updated intentionally, not tracking "current quarter" snapshots.


5. .pm/config.yaml

Why flagged: Contains initialization timestamp and version that suggests point-in-time project state rather than durable configuration.

Problematic content:

initialized_at: "2026-03-07T15:00:00Z"
version: "0.1.0"
```

**Where this should go:** If this is meant to be configuration for tooling, remove the temporal markers (`initialized_at`). Configuration should be timeless—timestamps indicate state tracking, not configuration.

---

### ✅ Not Violations

The following files are **durable project infrastructure** and correctly belong in the repository:

- `.claude/skills/pm-architect/SKILL.md` — Durable skill documentation
- `.claude/skills/pm-architect/scripts/generate_top5.py` — Reusable, parameterized script
- `.claude/skills/pm-architect/scripts/tests/test_generate_top5.py` — Test suite (31 unit tests)
- `.claude/skills/pm-architect/scripts/tests/agentic/*.yaml` — Test fixtures
- `pyproject.toml` — Project configuration

---

### 🔓 Override Instructions

To override this blocking assessment, add a PR comment containing:

```
repo-guardian:override (reason)

where (reason) is a required non-empty justification for allowing these files (e.g., "These are example fixtures for pm-architect feature demonstration" or "Intentional test data for priority aggregation"). The reason is mandatory for auditability.

AI generated by Repo Guardian

@github-actions
Copy link
Contributor

github-actions bot commented Mar 8, 2026

✅ Triage Result: READY FOR MERGE

Priority: HIGH | Risk: MEDIUM

Assessment

This PR is the only mergeable PR out of 4 agent-created PRs currently open. It has:

  • ✅ No merge conflicts
  • ✅ Comprehensive testing (31 unit tests added)
  • ✅ Clean scope (18 files, +1742/-2)
  • ✅ No blocking issues identified

Recommended Action

Merge immediately to unblock integration pipeline.

Quality Notes

  • Well-structured integration into pm-architect skill
  • Adds valuable /top5 priority aggregation feature
  • Tests cover Pattern 5 (Quick Priority View) and Pattern 6 (Daily Standup)

Related

See full triage report in repo memory: pr-triage-2026-03-08-18Z.json


Automated triage by PR Triage Agent - Run #22827330377

AI generated by PR Triage Agent

Ubuntu and others added 2 commits March 8, 2026 19:41
- Sync all new pm-architect files to amplifier-bundle/skills/ and docs/claude/skills/
  (fixes "Check skill/agent drift" CI failure)
- Remove .pm/ ephemeral state files (backlog, workstreams, delegations, config)
  that Repo Guardian correctly flagged as point-in-time state
- Add .pm/ to .gitignore to prevent future accidental commits

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Contributor

github-actions bot commented Mar 8, 2026

🤖 Auto-fixed version bump

The version in pyproject.toml has been automatically bumped to the next patch version.

If you need a minor or major version bump instead, please update pyproject.toml manually and push the change.

rysweet and others added 2 commits March 8, 2026 20:49
…2950)

* feat: Oxidizer recipe — automated Python-to-Rust migration workflow

Adds the oxidizer-workflow recipe, skill definition, and documentation.

- amplifier-bundle/recipes/oxidizer-workflow.yaml: 65-step recipe with
  iterative convergence loops, quality audits, and zero-tolerance parity
- .claude/skills/oxidizer-workflow/SKILL.md: Skill definition with activation
  keywords and usage examples
- docs/OXIDIZER.md: Full documentation covering all phases, context variables,
  and the zero-tolerance policy
- mkdocs.yml: Navigation entries for the workflow and skill

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* [skip ci] chore: Auto-bump patch version

---------

Co-authored-by: Ubuntu <azureuser@devo.xh24nwhiyviedbtbx54dafh01e.dx.internal.cloudapp.net>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
@rysweet rysweet merged commit 60baad7 into main Mar 8, 2026
14 checks passed
@github-actions
Copy link
Contributor

github-actions bot commented Mar 8, 2026

🤖 Auto-fixed version bump

The version in pyproject.toml has been automatically bumped to the next patch version.

If you need a minor or major version bump instead, please update pyproject.toml manually and push the change.

@github-actions
Copy link
Contributor

github-actions bot commented Mar 8, 2026

Repo Guardian - Passed ✅

All files in this PR contain durable content appropriate for the repository:

  • generate_top5.py - Parameterized, reusable priority aggregation script with clear CLI interface
  • ✅ Test files - Unit tests and E2E agentic tests (31 tests total)
  • SKILL.md updates - Durable reference documentation (Patterns 5 & 6)
  • ✅ Configuration files - .gitignore, pyproject.toml version bump
  • ✅ No meeting notes, status updates, or temporary scripts detected

Note: Pattern 6 and the Scripts section reference generate_daily_status.py and generate_roadmap_review.py which don't exist in this PR. This is a documentation-code mismatch but not a repo guardian violation.

AI generated by Repo Guardian

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant