plugins/github-copilot-modernization/skills/sharing-learnings/SKILL.md
How to record project learnings so that later-phase workers and future agent runs can consume them.
npx skillsauth add microsoft/github-copilot-modernization sharing-learningsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill defines how a multi-agent run captures knowledge and feeds it back into later phases and future runs.
| Product | Path | Scope | Audience |
|---|---|---|---|
| Learnings | {{BASE_PATH}}/learnings/<role>/<slug>.md (git-tracked) | persistent across runs | later-phase agents in same run + future agents on this repo + humans |
Invoked by every worker during Preflight Step 2 (consume prior learnings) and Completion Phase (produce new learnings).
{{BASE_PATH}}/
└── learnings/<role>/<slug>.md ← per-topic, append-friendly, git-tracked
The directory tree + filename is the index. Each file's first three lines (H1 + blank + one-sentence description) are its scannable metadata. No separate index file needed.
list_dir {{BASE_PATH}}/learnings/<your-role>/ (and any cross-cutting roles relevant to your task).read_file the full body only for learnings that are relevant to your current task.Emit once after loading:
[learnings-loaded] <role>/<slug>, <role>/<slug>
Use (none) if nothing relevant was found. If a learning conflicts with your task or charter, [notify:coordinator] — do not silently ignore.
Every file under {{BASE_PATH}}/learnings/ MUST follow this shape:
# <Slug Title>
One-sentence description that future agents scan to decide relevance.
## What Happened
Narrative: what was discovered, what went wrong, what worked.
Cite the originating project + task ID.
## Takeaway
Concrete guidance for future tasks dealing with the same topic.
## Example (optional)
Minimal snippet illustrating the point.
## History
- <YYYY-MM-DD> (<project>/<taskId>): initial
- <YYYY-MM-DD> (<project>/<taskId>): added X based on new finding
Blank template: templates/learning.md.
Before finishing your task, evaluate what you learned and decided.
Mandatory — you MUST write a learning when any of these apply:
camelCase vs snake_case, tab width, import ordering)These learnings ensure style and architecture stay consistent across runs, even if the choice felt obvious.
Optional — write a learning when any of these apply:
Doing nothing is valid only if the task involved no style/architecture decisions and had no surprises.
war-packaging-for-jsp.md).{{BASE_PATH}}/learnings/<your-own-role>/. If you spot something that belongs to another role, use [notify:<that-role>] instead.## History entry rather than creating a duplicate. Add new details under the existing sections.Emit after writing (empty list is fine):
[learnings] written: [<role>/<slug>, ...]
testing
Generate and run post-migration tests from the frozen baseline specification.
devops
How team members request infrastructure connection info and handle secrets in team mode
testing
Create a test baseline for the project to be modernized. The baseline will be used for later verification of modernization tasks.
tools
Convert an arbitrary CSV report (e.g. a Black Duck export or a custom migration-issue inventory) into a schema-valid assessment `report.json` the modernization pipeline can consume — so it appears in the assessment UI and migration solutions resolve automatically. This skill is LLM-driven: you read and interpret the CSV yourself and author `report.json` by hand against the schema. A small helper script only does deterministic lookups (migration solutions, the ruleId for a solution) and validates the finished report. There is NO "convert everything" script and NO assumed column layout. Triggers: "convert csv to assessment report", "import csv report", "turn this spreadsheet into a report.json", "Black Duck csv to report", "build report.json from csv", "migrate a third-party assessment export". NOT for: AppCAT-style analysis from source (use `assessment`), generating a modernization plan (use `create-modernization-plan`), or editing a report.json the pipeline already produced.