sharing-learnings

bởi microsoft

Cách ghi lại các bài học dự án để những người làm việc ở giai đoạn sau và các lần chạy agent trong tương lai có thể sử dụng chúng.

npx skills add https://github.com/microsoft/github-copilot-modernization --skill sharing-learnings

Sharing Learnings

This skill defines how a multi-agent run captures knowledge and feeds it back into later phases and future runs.

ProductPathScopeAudience
Learnings{{BASE_PATH}}/learnings/<role>/<slug>.md (git-tracked)persistent across runslater-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).


1. Directory Layout

{{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.


2. Consuming Learnings (Preflight Step 2)

  1. list_dir {{BASE_PATH}}/learnings/<your-role>/ (and any cross-cutting roles relevant to your task).
  2. Read only the first 3 lines of each file (H1 + blank + one-sentence description). Decide relevance from that sentence alone.
  3. 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.


3. Learning File Format

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.


4. Producing Learnings (Completion Phase)

Before finishing your task, evaluate what you learned and decided.

When to write

Mandatory — you MUST write a learning when any of these apply:

  • You made a code-style or naming convention choice (e.g. camelCase vs snake_case, tab width, import ordering)
  • You made an architecture or design decision (e.g. injection style, module boundaries, error-handling strategy, API shape)
  • You chose a library, framework version, or configuration that affects project consistency

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:

  • Something failed or surprised you, and the resolution is worth recording
  • A pattern emerged across multiple files/decisions in the task
  • A framework/library/tool behaved differently than expected
  • A source→target mapping rule would apply to other modules too

Doing nothing is valid only if the task involved no style/architecture decisions and had no surprises.

How to write

  • One topic per file. The slug should make the topic clear (kebab-case, e.g. war-packaging-for-jsp.md).
  • Role ownership. Write under {{BASE_PATH}}/learnings/<your-own-role>/. If you spot something that belongs to another role, use [notify:<that-role>] instead.
  • Append to existing files. If a file with a matching slug already exists and covers the same topic, append a new ## History entry rather than creating a duplicate. Add new details under the existing sections.
  • Keep it short. Target < 40 lines. If it's longer, split into separate files.

Emit after writing (empty list is fine):

[learnings] written: [<role>/<slug>, ...]

Thêm skills từ microsoft

oss-growth
microsoft
Cá tính tăng trưởng OSS
official
accessibility-aria-expert
microsoft
Phát hiện và sửa các vấn đề về khả năng tiếp cận trong giao diện web React/Fluent UI. Sử dụng khi xem xét mã để đảm bảo tương thích với trình đọc màn hình, sửa nhãn ARIA, đảm bảo…
official
generate-canvas-app
microsoft
[DEPRECATED — sử dụng canvas-app thay thế] Tạo một ứng dụng canvas Power Apps hoàn chỉnh.
official
django
microsoft
Các phương pháp tốt nhất cho phát triển web Django bao gồm models, views, templates và testing.
official
github-issue-creator
microsoft
Chuyển đổi ghi chú thô, nhật ký lỗi, ghi âm giọng nói hoặc ảnh chụp màn hình thành báo cáo vấn đề markdown sắc nét theo phong cách GitHub. Sử dụng khi người dùng dán thông tin lỗi, lỗi…
official
python-package-management
microsoft
Sử dụng uv để quản lý phụ thuộc và poethepoet để tự động hóa tác vụ.
official
runtime-validation
microsoft
Xác thực thời gian chạy cho các ứng dụng đã di chuyển — bao gồm chiến lược kiểm thử (giai đoạn lập kế hoạch) và thực thi kiểm thử (giai đoạn xác thực): xác minh khởi động,…
official
azure-postgres-ts
microsoft
Kết nối đến Azure Database for PostgreSQL Flexible Server bằng gói pg (node-postgres) với hỗ trợ xác thực mật khẩu và Microsoft Entra ID (không mật khẩu).
official