From 1a0f3aa7790c21df90db31b78f4aeece397adec3 Mon Sep 17 00:00:00 2001 From: lmiranda Date: Mon, 26 Jan 2026 10:21:53 -0500 Subject: [PATCH] [Sprint V04.1.0] feat: Add cross-linking between issues, wiki, and lessons MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add Metadata section to lesson structure with Implementation link - Update lesson examples to include metadata with wiki reference - Enable bidirectional traceability: lessons ↔ implementation pages Phase 3 of V04.1.0 Wiki-Based Planning Enhancement. Closes #163 Co-Authored-By: Claude Opus 4.5 --- plugins/projman/agents/orchestrator.md | 33 +++++++++++++++++++++++- plugins/projman/commands/sprint-close.md | 17 ++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/plugins/projman/agents/orchestrator.md b/plugins/projman/agents/orchestrator.md index ec897ab..c97471e 100644 --- a/plugins/projman/agents/orchestrator.md +++ b/plugins/projman/agents/orchestrator.md @@ -357,6 +357,11 @@ Let's capture lessons learned. I'll ask some questions: ```markdown # Sprint {N} - {Clear Title} +## Metadata +- **Implementation:** [Change VXX.X.X (Impl N)](wiki-link) +- **Issues:** #XX, #XX +- **Sprint:** Sprint N + ## Context Brief background - what were you doing? @@ -373,11 +378,37 @@ How can future sprints avoid this or optimize it? technology, component, issue-type, pattern ``` +**IMPORTANT:** Always include the Metadata section with implementation link for traceability. + **D. Save to Gitea Wiki** + +Include the implementation reference in lesson content: ``` create_lesson( title="Sprint 18 - Claude Code Infinite Loop on Validation Errors", - content="[Full lesson content]", + content=""" +# Sprint 18 - Claude Code Infinite Loop on Validation Errors + +## Metadata +- **Implementation:** [Change V1.2.0 (Impl 1)](wiki-link) +- **Issues:** #45, #46 +- **Sprint:** Sprint 18 + +## Context +[Lesson context...] + +## Problem +[What went wrong...] + +## Solution +[How it was solved...] + +## Prevention +[How to avoid in future...] + +## Tags +testing, claude-code, validation, python +""", tags=["testing", "claude-code", "validation", "python"], category="sprints" ) diff --git a/plugins/projman/commands/sprint-close.md b/plugins/projman/commands/sprint-close.md index 8afc2ac..b5e392d 100644 --- a/plugins/projman/commands/sprint-close.md +++ b/plugins/projman/commands/sprint-close.md @@ -89,6 +89,11 @@ Lessons should follow this structure: ```markdown # Sprint X - [Lesson Title] +## Metadata +- **Implementation:** [Change VXX.X.X (Impl N)](wiki-link) +- **Issues:** #45, #46, #47 +- **Sprint:** Sprint X + ## Context [What were you trying to do? What was the sprint goal?] @@ -105,12 +110,19 @@ Lessons should follow this structure: [Comma-separated tags for search: technology, component, type] ``` +**IMPORTANT:** Always include the Implementation link in the Metadata section. This enables bidirectional traceability between lessons and the work that generated them. + ## Example Lessons Learned **Example 1: Technical Gotcha** ```markdown # Sprint 16 - Claude Code Infinite Loop on Validation Errors +## Metadata +- **Implementation:** [Change V1.2.0 (Impl 1)](https://gitea.example.com/org/repo/wiki/Change-V1.2.0%3A-Proposal-(Implementation-1)) +- **Issues:** #45, #46 +- **Sprint:** Sprint 16 + ## Context Implementing input validation for authentication API endpoints. @@ -137,6 +149,11 @@ testing, claude-code, validation, python, pytest, debugging ```markdown # Sprint 14 - Extracting Services Too Early +## Metadata +- **Implementation:** [Change V2.0.0 (Impl 1)](https://gitea.example.com/org/repo/wiki/Change-V2.0.0%3A-Proposal-(Implementation-1)) +- **Issues:** #32, #33, #34 +- **Sprint:** Sprint 14 + ## Context Planning to extract Intuit Engine service from monolith.