用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/castrojo/casestudypilot --skill epic-journey-update命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | epic-journey-update |
| description | Update epic issue with implementation journey and lessons learned after work completes |
| version | 1.0.0 |
Update epic issue with comprehensive implementation journey documenting challenges, solutions, learnings, and context for future agents.
Announce at start: "I'm using the epic-journey-update skill to document the implementation journey."
If working from branch:
BRANCH_NAME="<feature-branch>"
BASE_BRANCH="main"
# Get commits
git log $BASE_BRANCH..$BRANCH_NAME --oneline --no-merges
# Get files changed
git diff $BASE_BRANCH...$BRANCH_NAME --name-only
If working from PR:
PR_NUMBER="<pr-number>"
# Get PR details
gh pr view $PR_NUMBER --json title,body,commits,comments
# Get commit messages
gh pr view $PR_NUMBER --json commits --jq '.commits[].commit.message'
# Get files changed
gh pr view $PR_NUMBER --json files --jq '.files[].path'
Review the commits, PR discussion, and code changes to understand:
Challenges (2-4 items):
Solutions (2-4 items):
Learnings (2-3 items):
Artifacts:
This is the most important section. Write 2-4 sentences covering:
Design Rationale:
Integration Points:
Dependencies:
Follow-up Work:
Warnings:
Create journey content:
---
## 📊 Status
✅ **Completed**
**Completed:** <date>
**Branch:** `<branch-name>`
**PR:** #<pr-number> (if applicable)
---
## 📚 Implementation Journey
### Summary
<2-3 sentences: what was accomplished, key deliverables>
### Challenges Encountered
- **<Challenge 1>**: <Description and impact>
- **<Challenge 2>**: <Description and impact>
### Solutions Applied
- **<Solution 1>**: <How solved and why>
- **<Solution 2>**: <Decision and rationale>
### Key Learnings
-
files (key: file1, file2, ...)
test files
#
---
Get current issue body and update the journey section:
EPIC_NUMBER="<epic-number>"
# Get current body
CURRENT_BODY=$(gh issue view $EPIC_NUMBER --json body --jq '.body')
# Replace content between JOURNEY_START and JOURNEY_END markers
# Option 1: In-place update (complex text manipulation)
# Option 2: Append as comment (simpler)
# Simpler approach - post journey as comment
gh issue comment $EPIC_NUMBER --body "$(cat journey_log.md)"
Alternative - update in place:
# Save current body
echo "$CURRENT_BODY" > temp_body.md
# Use sed or awk to replace section between JOURNEY_START and JOURNEY_END
# with new journey content
# Update issue
gh issue edit $EPIC_NUMBER --body "$(cat updated_body.md)"
# Add completion labels
gh issue edit $EPIC_NUMBER --add-label "completed,documented"
# Note: Do NOT close the issue (per user preference)
gh issue comment $EPIC_NUMBER --body "✅ Epic journey documented. Implementation complete and lessons learned captured for future reference."
Journey logs must be:
Bad: "We improved performance" Good: "MCP stdio connection had 2s startup delay causing test timeouts. Added retry logic with 3 attempts. Reduced test failures from 30% to 0%."
Integrated CNCF Landscape MCP server to replace direct API calls, providing real-time project and member data with validated quality.
Design Rationale: MCP client uses stdio transport (not HTTP) because landscape-mcp-server only supports stdio currently. Chose context manager pattern for automatic cleanup after API errors to prevent leaked Docker processes.
Integration Points: All company verification flows through validate_company.py → mcp_client.query_members(). Project validation uses transcript-analysis skill → validate_analysis.py → mcp_client.query_projects(). Do not bypass mcp_client or you'll have stale data from old landscape.json cache.
Dependencies: Requires Docker and mcp Python package (0.1.0+). Landscape data URL is configurable but defaults to https://landscape.cncf.io/data/full.json. Connection fails silently if Docker not running - check stderr logs for "connection refused".
Follow-up Work: Consider adding connection pooling for multiple concurrent requests (currently serial). HTTP transport would be more reliable but requires upstream changes to landscape-mcp-server. Caching layer could reduce Docker startup overhead in tests (currently 2s per test).
Warnings: Do not remove retry logic in connect() method - Docker startup is genuinely slow (2s). Do not lower fuzzy match threshold below 85 - causes false positives (tested: "Adobe" matched "Abode" at 80%). Do not cache query results longer than 1 hour - landscape data updates multiple times daily.
Called by:
finishing-a-development-branch skill - After Option 1 (local merge) when epic detected