PR #1349 — PM Autonomous Backlog Triaging & Story Formation Engine
The Broader Goal at the End of the Previous PR
Following the cross-harness inter-agent event relay (PR #1348), autonomous growth engine (PR #1347), and model registry (PR #1339), synlynk had mature mechanisms for real-time messaging, public release narratives, and execution capabilities. However, backlog management and story synthesis remained manual: incoming GitHub issues and dynamic task discoveries were either manually converted into stories or left untracked.
Strategic Shifts in This PR (if any)
This PR activates the PM agent's durable loop to autonomously ingest GitHub issues, apply semantic and SHA-256 deduplication, synthesize testable acceptance criteria, assign GOVERNS roles and complexity tiers, and auto-promote ready stories directly into state.db and the TPM execution sweep:
- Multi-Layer Deduplication across
backlog_items,stories, and merged PR/commit history. - Structured Story Synthesizer generating role assignments (
dev,qa,architect,pm,marketing,tpm), complexity tiers (Tier 1/2/3), testable acceptance criteria, and goal mappings. - Dedicated CLI subcommands:
synlynk backlog ingest,synlynk backlog triage,synlynk backlog auto-promote. - Seamless integration with
synlynk tpm sweepto autonomously promote and sweep ready work.
What This PR Shipped
- Backlog Database Schema & Migration (
synlynk/db.py):- Added
backlog_itemsSQLite table with columns foritem_id,title,body,issue_number,gh_issue,author,labels,fingerprint,role,stage,governs_stage,complexity_tier,goal_id,acceptance_criteria,status, and timestamps. - Bumped DB migration version to 8 with automated index creation.
- Added
- Issue Fetching & Deduplication Classifier (
synlynk/backlog.py):- Implemented
fetch_open_github_issues()to query open issues with structured metadata. - Built
is_duplicate_issue()checking fingerprints, issue numbers, normalized title similarity, and closed PRs / git commits.
- Implemented
- Semantic Goal Alignment & Story Synthesizer:
- Implemented
synthesize_story_from_issue()to classify role charters, GOVERNS stages, complexity tiers (1 to 3), extract/synthesize testable acceptance criteria, and associate with active roadmap goals (goal-005ea87d,goal-adb60ccc,goal-ef42902a,goal-6733bbf1,goal-0c4e96ff).
- Implemented
- PM Autonomous Triage CLI & Sweep Integration:
- Exposed
synlynk backlog ingest [--sync-github],synlynk backlog triage [--auto-promote], andsynlynk backlog auto-promote [--min-tier N]. - Registered backlog subcommands in
COMMAND_TAXONOMYinsynlynk/taxonomy.py. - Wired
auto_promote_backlog()intorun_sweep_pass()insynlynk/tpm_sweep.py.
- Exposed
- Comprehensive Test Suite:
- Added unit tests in
tests/test_backlog.pycovering ingestion, deduplication, synthesis, triage, promotion, and CLI integration. - Added verification test
test_feat_pm_autonomous_backlog_triaging__story_c70350f9intests/test_agent_cli.py.
- Added unit tests in
Brainstorm Visuals Used
docs/superpowers/specs/2026-08-31-governs-backlog-automation-design.md(GOVERNS Backlog Architecture & Signal vs. Noise Filter)docs/superpowers/plans/2026-09-02-pm-backlog-triaging-and-story-formation.md(PM Triage & Story Formation Plan)
What This Achieved on the Path to Autonomy
The PM agent can now operate a completely autonomous backlog triaging loop: open issues and newly discovered tasks are ingested, deduplicated, enriched with testable criteria and goal linkages, and promoted to ready status without requiring human intervention.
Strategic Note: The Goal at the End of This PR
Next up is closing the loop on living charter evolution (Issue #1342) and ephemeral swarm runners (Issue #1341), connecting autonomous backlog triaging directly to distributed execution fleets.