Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
GitHub Copilot modernizace je rozšiřitelná. Agent poskytuje několik bodů přizpůsobení pro kódování vzorů upgradu vašeho týmu, vynucení standardů kódování během upgradů a definování nových pracovních postupů upgradu.
Přehled bodů přizpůsobení
| Bod přizpůsobení | Scope | Perzistence | Effort |
|---|---|---|---|
| Pokyny k chatu | Pro každou relaci nebo při upgradu | Relace nebo uložení do scenario-instructions.md |
Minimální |
| Artefakty scénáře | Za každý upgrade | Doba trvání upgradu | Nízká úroveň |
| Vlastní dovednosti | Tým nebo osobní | Trvalé (zaškrtnuté v úložišti nebo profilu uživatele) | Středně |
| Vlastní scénáře | Tým nebo osobní | Permanent | Vysoko |
Návod
Začněte s instrukcemi chatu a úpravami artefaktů scénáře. Přejděte na vlastní dovednosti, když zjistíte, že opakujete stejné instrukce v rámci upgradu.
Přizpůsobení prostřednictvím chatu
Přizpůsobte chování agenta v reálném čase prostřednictvím přirozené konverzace. Agent buď použije vaše instrukce okamžitě, nebo je uchová na scenario-instructions.md pro budoucí použití.
| Říkáš, že | Co se stane |
|---|---|
| „Odteď proveďte commit vždy po každém úkolu“ | Uloženo jako předvolba provádění v scenario-instructions.md |
| "Přeskočit ověření testu pro tuto úlohu" | Použije se okamžitě pouze u aktuálního úkolu. |
| "Použijte strategii zdola nahoru pro tento upgrade" | Ovlivňuje strategii fáze plánování. |
| "Nedotýkejte se projektu Logování" | Přidáno do předvoleb; agent vyloučí tento projekt. |
| "Vždy používejte obory názvů omezené na soubor" | Uloženo jako standardní předvolba kódování |
| "Přerušení po dokončení každého úkolu pro moji kontrolu" | Uloženo jako předvolba stylu provádění |
Návod
Pokud chcete, aby instrukce trvala v celém upgradu, pojmete ji jako trvalou předvolbu: "Odteď, vždy..." nebo "Pro všechny úkoly v tomto upgradu...". Agent zapíše instrukce do scenario-instructions.md.
Úprava artefaktů scénáře
Když agent spustí upgrade, vytvoří pracovní prostor v .github/upgrades/{scenarioId}/. Složka upgradu obsahuje upravitelné artefakty, které přímo řídí chování agenta.
scenario-instructions.md
Soubor scenario-instructions.md je trvalá paměť agenta pro upgrade. Agent vždy načte tento soubor do kontextu, takže cokoli, co tady napíšete, přímo ovlivňuje každé rozhodnutí, které agent provede.
Přidejte sekce, které provedou agenta:
## User Preferences
### Technical Preferences
- Always prefer explicit type declarations over `var`
- Use `ILogger<T>` instead of `ILoggerFactory` for dependency injection
- Target .NET 10 for all projects
- Keep Newtonsoft.Json in the shared library (don't migrate to System.Text.Json)
### Execution Style
- **Pace**: Methodical
- **Pause Points**: After assessment, after each task group
### Custom Instructions
#### 02-common-lib
- Skip the database migration for now — it has external dependencies
- Use the connection string from `appsettings.Production.json` for testing
#### 03-data-layer
- Keep existing repository interfaces during migration
- Preserve all Entity Framework conventions
## Key Decisions Log
- 2025-01-15: Keep Newtonsoft.Json in SharedLib — third-party SDK requires it
- 2025-01-16: Skip database project — DBA team will handle separately
plan.md
Soubor plan.md definuje úkoly a jejich obor. Upravit plan.md na:
- Změňte pořadí úkolů pro změnu sekvence provádění.
- Přidejte úlohy, které agent neměl v plánu.
- Odeberte úkoly, které se nevztahují.
- Přidejte poznámky pro poskytnutí kontextu pro konkrétní úkoly.
Jednotlivé soubory úkolů
tasks/{taskId}/task.md Každý úkol obsahuje specifikaci úkolu a pracovní poznámky. Upravte tyto soubory na:
- Upřesněte obor úkolu.
- Přidejte kontext specifický pro doménu, který agent zmeškal.
- Zadejte příklady kódu pro požadovaný výsledek.
Důležité
Nástroje agenta spravují tasks.md jako řídicí panel pouze pro čtení. Neupravujte tasks.md přímo. Agent přepíše všechny ruční změny. Místo toho upravte scenario-instructions.md nebo jednotlivé task.md soubory.
Vytvoření vlastních dovedností
Dovednosti jsou primárním bodem rozšíření agenta. Dovednost je soubor Markdownu s hlavičkou metadat, která naučí agenta, jak zpracovat konkrétní upgrade, vzor nebo úlohu.
Kde vložit vlastní dovednosti
| Location | Scope | Použít, když |
|---|---|---|
.github/skills/my-skill.md |
Úložiště (sdílené s týmem) | Vzory upgradu pro celý tým |
.github/upgrades/skills/my-skill.md |
Úložiště (specifické pro upgrade) | Dovednosti specifické pro scénáře upgradu |
%UserProfile%/.copilot/skills/my-skill.md |
Profil uživatele (osobní, všechna úložiště) | Osobní předvolby a vzory |
Návod
Nejběžnější volbou jsou dovednosti na úrovni úložiště (.github/skills/). Cestují s kódem a celý tým je může používat.
Struktura souborů dovedností
Každý soubor dovednosti má dvě části: hlavičku metadat (kterou agent používá k pochopení, kdy se dovednost použije) a tělo Markdownu (pokyny agent následuje).
---
name: migrating-foobar-v2-to-v3
description: >
Migrate our internal FooBar library from v2 to v3. Activates when
FooBar.v2 NuGet package is detected, or when asked to "upgrade FooBar",
"migrate FooBar", or "update FooBar library".
metadata:
discovery: lazy
traits: .NET | CSharp
---
# Migrating FooBar Library v2 to v3
## Overview
FooBar v3 introduces a new async-first API surface. This skill guides the
agent through replacing synchronous FooBar.v2 calls with their v3 async
equivalents, updating configuration, and verifying behavior.
## Workflow
1. **Identify FooBar.v2 references**
- Search for `PackageReference` elements referencing `FooBar.v2`
- Locate all `using FooBar.V2;` directives
2. **Update package references**
- Replace `FooBar.v2` with `FooBar.v3` in all `.csproj` files
- Run `dotnet restore` to verify resolution
3. **Migrate API calls**
- Replace `FooBarClient.Send(...)` with `await FooBarClient.SendAsync(...)`
- Replace `FooBarConfig.LoadFromFile(...)` with `FooBarConfig.LoadFromJsonAsync(...)`
- Update method signatures to `async Task` where needed
4. **Update configuration**
- Rename `foobar.config` to `foobar.json`
- Migrate XML config entries to JSON format
5. **Verify**
- Build the project: `dotnet build`
- Run existing tests: `dotnet test`
- Verify no remaining references to `FooBar.V2` namespace
## Success Criteria
- [ ] No references to `FooBar.v2` NuGet package remain
- [ ] All `FooBar.V2` namespace usages replaced with `FooBar.V3`
- [ ] Project builds without errors
- [ ] All existing tests pass
## Error Handling
- If `FooBar.v3` is not available in the configured NuGet feeds, instruct
the user to add the internal feed
- If async migration causes deadlocks in legacy synchronous code paths,
wrap calls with `.GetAwaiter().GetResult()` and add a TODO comment
Pole metadat
| Pole | Povinné | Description |
|---|---|---|
name |
Ano | Jedinečný identifikátor v kebab-case. Začněte slovesem v gerundiu (například upgrading-, converting-). Maximálně 64 znaků. |
description |
Ano | Určuje, kdy agent načte schopnost. Zahrnout aktivační fráze, jako jsou slova a vzory, které by měly aktivovat dovednost. |
metadata.discovery |
Ne | Určuje, kdy se dovednosti načítají: preload (vždy k dispozici), lazy (na vyžádání, pokud se popis shoduje, výchozí a doporučeno) nebo scenario (definuje orchestrátor pracovního postupu). |
metadata.traits |
Ne | Klíčová slova popisující technologie v projektu, například .NET, CSharp, VisualBasic nebo DotNetCore. |
Osvědčené postupy pro tvorbu dovedností
- Buďte specifická v popisu: Uveďte přesné názvy balíčků, názvy knihoven a fráze triggerů v přirozeném jazyce, které můžou uživatelé zadávat.
- Zahrnout jasné podrobné pracovní postupy: Číslování kroků Buďte explicitní o tom, jaké soubory se mají změnit a jaké příkazy se mají spustit.
- Zahrnout kritéria úspěchu: Bez kritérií úspěchu agent neví, kdy se má zastavit. Použijte zaškrtávací políčka nebo seznam ověřitelných podmínek.
- Zahrnout zpracování chyb: Předvídejte běžné režimy selhání, jako jsou chybějící balíčky, selhání sestavení nebo nefunkční testy.
- Zaměřte se na dovednosti: Jedna dovednost na upgrade nebo typ úkolu. Dovednost pro "upgrade FooBar v2 na v3" je lepší než "upgrade všech interních softwarových knihoven".
-
Název s gerundovým slovesem: Použijte
upgrading-foobar-v2-to-v3, nefoobar-upgradenebofoobar-v3. -
lazyPoužijte zjišťování pro většinu vlastních dovedností, abyste se vyhnuli nadměrnému zaplnění kontextového okna agenta.
Vytváření vlastních scénářů
Pro pokročilé uživatele, kteří chtějí definovat zcela nové pracovní postupy upgradu, vám vlastní scénáře umožňují orchestrovat úplný kanál s vícefázovým upgradem. Scénář je dovednost, metadata.discovery: scenario která definuje fáze, které agent následuje.
---
name: migrating-soap-to-rest-api
description: >
Migrate legacy WCF/SOAP services to ASP.NET Core REST APIs. Activates
when WCF service references, .svc files, or SOAP clients are detected,
or when asked to "migrate SOAP to REST", "replace WCF", or "convert
web services to REST".
metadata:
discovery: scenario
traits: .NET | CSharp
scenarioTraitsSet: [wcf, soap, web-services]
---
# SOAP to REST API Migration
## Pre-initialization
Gather from the user:
- Which SOAP services to migrate (all or specific ones)
- Whether to maintain backward compatibility with a SOAP facade
- Authentication mechanism for the new REST APIs
- API versioning strategy (URL path, header, query string)
## Assessment
Analyze the solution for:
- `.svc` files and WCF service contracts
- WSDL files and service references
- `System.ServiceModel` usage and binding configurations
- Data contracts and their serialization requirements
- Client proxies consuming SOAP services
## Planning
Create tasks in this order:
1. Create shared DTOs — Convert `[DataContract]` types to POCOs
2. Create REST controllers — One controller per `[ServiceContract]`
3. Map operations to HTTP methods
4. Migrate service implementations
5. Update clients — Replace `ChannelFactory`/generated proxies with `HttpClient`
6. Remove WCF infrastructure
7. Add API documentation — Swagger/OpenAPI via Swashbuckle
## Execution
For each service contract:
1. Create a corresponding controller
2. Create a service interface and implementation
3. Register the service in DI
4. Map WCF operations to REST endpoints
5. Update any in-solution clients to use the new REST endpoints
6. Build and run existing tests
Umístěte soubory scénářů do .github/skills/ nebo do .github/upgrades/skills/, aby je agent zjistil.
Návod
Pole scenarioTraitsSet definuje vlastnosti, které agent používá k porovnání vašeho scénáře s vlastnostmi řešení. Tyto vlastnosti pomáhají agentu navrhnout váš scénář, pokud je to vhodné.
Správa zdrojového kódu a větvení
Agent nabízí práci na větvi Gitu, ale máte plnou kontrolu nad strategií:
- Pojmenování větví: Řekněte agentovi, jaký název větve se má použít, nebo nechte agenta navrhnout.
- Větve pro jednotlivé úkoly: Požádejte o samostatnou větev pro každou úlohu pro podrobnou kontrolu.
- Časování potvrzení: Zvolte, kdy se agent potvrdí: po každé dokončené úloze (výchozí), pouze na konci úplného upgradu nebo na vyžádání.
- Bez správy zdrojového kódu: Agent také funguje se složkami mimo Git, ale doporučuje nejprve zálohovat váš projekt.
Ukázkové pokyny k chatu:
- "Pro tento upgrade použijte název větve upgrade/dotnet10"
- "Vytvořte větev pro každý úkol, abych mohl každou z nich zkontrolovat zvlášť"
- "Neprovádějte žádné akce, dokud vás výslovně nepožádám"
- Potvrzení po každém úkolu s popisnou zprávou
Návod
U rozsáhlých upgradů s více projekty vám větve jednotlivých úkolů umožňují flexibilně kontrolovat a slučovat jednotlivé změny nezávisle nebo vrátit zpět jeden úkol, aniž by to mělo vliv na zbytek.
Priorita načítání schopností
Když agent zjistí více dovedností, vyřeší je pomocí systému priority. Zdroje s vyšší prioritou přepisují nebo doplňují zdroje s nižší prioritou:
| Priorita | Zdroj | Location |
|---|---|---|
| 5 (nejvyšší) | Vlastní dovednosti (prostřednictvím rozhraní API poskytované uživatelem) | — |
| 4 | Dovednosti v profilu uživatele | %UserProfile%/.copilot/skills/ |
| 3 | Dovednosti upgradu úložiště | .github/upgrades/skills/ |
| 2 | Dovednosti repozitáře | .github/skills/ |
| 1 (nejnižší) | Vložené dovednosti (integrované do agenta) | — |
Agent shromažďuje dovednosti ze všech zdrojů. Pokud mají dovednosti překrývající se rozsah, přednost mají zdroje s vyšší prioritou. Pole discovery určuje, kdy se dovednost načte.
lazy znamená na vyžádání, když je to relevantní, a preload znamená, že je vždy k dispozici.
Návod
Abyste mohli měnit chování, nemusíte nahradit integrovanou dovednost. Dovednost úložiště s vyšší prioritou doplňuje vestavěnou dovednost a přidává konvence specifické pro váš tým nad základní chování.